如何在不知道小部件的字体系列大小的情况下更改小部件的字体样式?

如何在不知道小部件的字体系列大小的情况下更改小部件的字体样式?,第1张

如何在不知道小部件字体系列/大小的情况下更改小部件的字体样式?

有一种比

.config()
用于更改应用程序字体的方法更好的方法,特别是如果您的目标是更改整个小部件(或所有小部件)的字体时,则尤其如此。

Tk真正的一大特色是“命名字体”的概念。命名字体的优点是,如果您更新字体,则使用该字体的所有小部件都会自动更新。因此,只需配置一次小部件以使用这些自定义字体,然后更改属性就变得微不足道了。

这是一个简单的例子:

try:    import Tkinter as tk    import tkFont#    import ttk  # not used hereexcept importError:  # Python 3    import tkinter as tk    import tkinter.font as tkFont#    import tkinter.ttk as ttk  # not used hereclass App:    def __init__(self):        root=tk.Tk()        # create a custom font        self.customFont = tkFont.Font(family="Helvetica", size=12)        # create a couple widgets that use that font        buttonframe = tk.frame()        label = tk.Label(root, text="Hello, world", font=self.customFont)        text = tk.Text(root, width=20, height=2, font=self.customFont)        buttonframe.pack(side="top", fill="x")        label.pack()        text.pack()        text.insert("end","press +/- buttons to changenfont size")        # create buttons to adjust the font        bigger = tk.Button(root, text="+", command=self.OnBigger)        smaller = tk.Button(root, text="-", command=self.OnSmaller)        bigger.pack(in_=buttonframe, side="left")        smaller.pack(in_=buttonframe, side="left")        root.mainloop()    def onBigger(self):        '''Make the font 2 points bigger'''        size = self.customFont['size']        self.customFont.configure(size=size+2)    def onSmaller(self):        '''Make the font 2 points smaller'''        size = self.customFont['size']        self.customFont.configure(size=size-2)app=App()

如果您不喜欢这种方法,或者希望将自定义字体基于默认字体,或者只是更改一种或两种字体来表示状态,则可以使用

font.actual
来获取该字体的实际大小给定的小部件。例如:

import Tkinter as tkimport tkFontroot = tk.Tk()label = tk.Label(root, text="Hello, world")font = tkFont.Font(font=label['font'])print font.actual()

当我运行上面的代码时,我得到以下输出:

{'family': 'Lucida Grande',  'weight': 'normal',  'slant': 'roman',  'overstrike': False,  'underline': False,  'size': 13}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5562397.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存