【问题标题】:Python Tkinter: How to modify the font of the Menu widget?Python Tkinter:如何修改菜单小部件的字体?
【发布时间】:2015-08-10 17:34:56
【问题描述】:

我正在尝试使用Courier New 的font 制作tkinter Menu 小部件。不幸的是,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()

【问题讨论】:

  • 您在哪个平台上运行?我认为您不能在某些平台(特别是 windows 和 osx)上更改菜单字体。
  • @BryanOakley 我在 Windows 8 上运行

标签: python python-3.x tkinter


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 2017-11-30
    • 2012-04-07
    相关资源
    最近更新 更多