代码之家  ›  专栏  ›  技术社区  ›  OysterShucker

tk.Text:标记字体

  •  0
  • OysterShucker  · 技术社区  · 2 年前

    有没有办法得到一个合适的 Font 实例的大小,这样我就可以只更改大小了?我知道我可以把它倒进去 tk.font.Font 但这似乎真的很低效。

    for tag in self.tag_names():
        #I need `f` to be a Font instance, not just a string
        f = self.tag_cget(tag, 'font')
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   Bryan Oakley    2 年前

    如果使用字体对象创建标记,则可以从标记中获取字体名称,然后使用 nametofont 将其转换为的实例 tkinter.font.Font 然而,只有当标记具有与其关联的字体,并且字体是字体对象而不是简写符号(例如: ("Helvetica", 24, "bold") )。

    from tkinter.font import nametofont
    ...
    for tag_name in self.tag_names():
        font_name = self.tag_cget(tag_name, "font")
        if font_name:
            font = nametofont(font_name)
            size = int(font.cget("size"))
            font.configure(size = size + delta)
    
        2
  •  0
  •   OysterShucker    2 年前

    一种方法是预制所有 Font 实例,并将实例分配给适用的标记 font 选项当您想更改大小时,循环到存储的 字体 实例,并直接更改它们的大小。使用您的每个标签 字体 实例将相应地发生变化。