python

您所在的位置:网站首页 tkinter字体大全 python

python

2023-07-12 09:51| 来源: 网络整理| 查看: 265

我正在使用 Tkinter 在 Python2.7 中开发 GUI,但我遇到了一个烦人的问题。

如果可能的话,我想在一行中定义所有小部件使用的默认字体。 此行仅修改 Entry 或 ComboBox 中使用的字体:

root.option_add("*Font", "courier 10")

但不是例如复选框的标签。

我发现存在预定义字体“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()

打印:

{'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}

(没有错误,但没有任何改变!)

我做错了什么?

最佳答案

Tkinter 有几种内置字体——TkDefaultFont、TkTextFont、TkFixedFont等,这些都是所谓的“命名字体” ”。它们非常强大——改变其中之一,所有使用它们的小部件也会改变。

要更改其中一种字体,请获取它的句柄,然后使用 configure 方法进行更改。例如,要将 TkDefaultFont 的大小更改为 48,您可以这样做:

default_font = tkFont.nametofont("TkDefaultFont") default_font.configure(size=48)

就是这样。您无需执行任何其他操作 - 使用 TkDefaultFont 的所有内容都会立即注意到更改。

在您的问题中,您暗示您希望 TkDefaultFont 字体被所有东西使用。为此,您可以使用 option_add ,如您所示:

root.option_add("*Font", default_font)

但是请注意,option_add 仅影响在您调用 option_add 之后创建的小部件,因此您需要在创建任何小部件之前执行此操作其他小部件。

还请注意,如果您不想先获取字体实例(即:root.option_add("*Font", “TkDefaultFont”))。

关于python - 如何修改 Tkinter 中的默认字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15462647/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3