Python Tkinter:如何修改Menu小部件的字体?

时间:2015-08-10 17:34:56

标签: python python-3.x tkinter

我正在尝试使用tkinter Menu制作font Courier New小部件。不幸的是,font attribute似乎无法正常工作。我正在使用Python 3.4.1。以下是代码:

from tkinter import *

class Arshi(Frame):

    def __init__(self, master):
        Frame.__init__(self, master)
        self.pack(fill=BOTH)
        self.topbar()

    def topbar(self):
        self.menufont = ("Courier New", 9)
        self.menu = Menu(self, font=self.menufont)
        self.master.config(menu=self.menu)

root = Tk()
root.title("Arshi")
window = Arshi(root)
window.mainloop()

1 个答案:

答案 0 :(得分:1)

Tkinter是一个绑定到Tk小部件的Python。 Tk的菜单小部件设计为具有不可编程的字体。这是其他流行的widget工具包在GUI开发下采用的方法,即:

- 无论使用哪个工具包创建它,系统的应用程序都应该有标准化的菜单 - 所有应用程序菜单字体均可由单个用户在单个系统范围的配置选项下进行配置(查找系统菜单字体设置的用户设置)。
- 无论您使用Tk还是竞争对手的小部件,所有菜单看起来都一样 - 如果另一个菜单确实看起来不同,那么它实际上不是一个菜单小部件。

例如,在Ubuntu中,应用程序菜单将抛出到屏幕的左上角,与主应用程序窗口分开。 OS-X有类似的方法。 Windows,Mac和Linux桌面都允许他们的个人用户根据个人喜好调整他们的菜单字体,而不是程序员的个人偏好。

可以使用另一个窗口小部件类来模仿菜单的外观,程序员可以根据自己的喜好自定义字体。例如,您可以使用menubutton小部件并调整它的字体选项,并将它们放在框架中。然后它将用于非标准菜单。