我正在使用Tkinter在Python2.7中使用GUI,我有一个恼人的问题.
我想定义所有小部件使用的默认字体,如果可能的话,在一行中.此行仅修改Entry或ComboBox中使用的字体:
root.option_add("*Font", "courier 10")
Run Code Online (Sandbox Code Playgroud)
但不是示例复选框的标签.
我发现预定义的字体存在"TkDefaultFont",但我无法更改其配置:
print tkFont.Font(font='TkDefaultFont').configure()
tkFont.Font(font='TkDefaultFont').config(family='Helvetica', size=20)
tk.TkDefaultFont = tkFont.Font(family="Helvetica",size=36,weight="bold")
print tkFont.Font(font='TkDefaultFont').configure()
Run Code Online (Sandbox Code Playgroud)
回报:
{'family':'DejaVu Sans','weight':'normal','slant':'roman','overstrike':0,'underline':0,'size': - 12} {'family': 'DejaVu Sans','weight':'normal','slant':'roman','overstrike':0,'underline':0,'size': - 12}
(没有错误,但没有任何改变!)
我做错了什么?
我尝试ttk.Combobox使用传统方式修改小部件字体
text_font = ('Courier New', '10')
mycombobox = Combobox(font = text_font)
mycombobox.pack()
Run Code Online (Sandbox Code Playgroud)
但字体并没有真正改变...
我也尝试使用ttk.Style但又没有任何反应......
text_font = ('Courier New', '10')
ttk_style = ttk.Style()
ttk_style.configure('App.TCombobox', font=text_font)
mycombobox = Combobox(style = "App.TCombobox")
mycombobox.pack()
Run Code Online (Sandbox Code Playgroud)
有没有办法控制字体?我想更改Entry和ListBox字体