ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Font Preferences ![](https://img.kancloud.cn/b3/df/b3df1082702521e373a10a720d687b41_710x841.png) 由于我的眼睛需要像16点字体这样的大字体,因此我可以设置PAGE默认字体来捕获大多数正确的东西。对于“ Python控制台”窗口,我想要一个大胆的字体;即PAGE固定宽度字体。 GUI字体更多。除了上述之外,还可以指定在诸如文本框和列表框之类的小部件中使用的文本字体。同样,我允许指定一种不同于默认字体的菜单字体。 我有一个问题与文本框字体的选择有关。字体应该是文本字体还是固定宽度字体?如果像PAGE Python控制台一样,要在文本框中构建编辑器,则需要固定宽度的字体,但是如果要显示类似帮助消息的内容,则使用可变宽度的字体更为合适。我对PAGE所做的是将GUI文本字体用于文本框,将GUI固定宽度字体用于列表框。实际上,可以很好地论证将所有三种字体用于列表框。 字体使我倍感痛苦和困惑。人们可能会选择一种字体,该字体在托管PAGE的系统上效果很好。然后,可以构建一个GUI,该GUI将调用目标系统上不可用的特定字体。如果您知道目标系统上可用的字体,则可以选择所需的字体。 Tk封装了一组始终可用的标准字体,当然,标准小部件使用这些字体。这有助于消除平台差异。预定义的字体是: > * TkDefaultFont所有其他未指定的GUI项目的默认设置。 > * TkTextFont 用于entry widgets, listboxes, etc. > * TkFixedFont一种标准的固定宽度字体。 > * TkMenuFont用于菜单项的字体。 > * TkHeadingFont该字体通常用于列表和表中的列标题。 > * TkCaptionFont窗口和对话框标题栏的字体。 > * TkSmallCaptionFont子窗口或工具对话框的较小的标题字体 > * TkIconFont图标标题的字体。 > * TkTooltipFont工具提示的字体。 以下python程序(Python 2.7)将显示默认字体的特征: ~~~ import Tkinter import tkFont root = Tkinter.Tk() fonts = tkFont.names() for font in fonts: print "\n%s" % font config = root.tk.call("font", "configure", font) print config ~~~ 也可能是这样的情况:如果所选字体在目标系统上不可用,则可以使用这些字体之一。我从文档中看不出来。首选项窗口允许您指定在生成的GUI中使用的默认字体。为避免百合花过多烫伤,我允许用户仅指定前四个。如果您尝试使用不同的字体作为默认值之一,然后又想返回真实的默认值,例如文本小部件的TkFixedFont,请指定一个按钮。我没有提供指定用于文本小部件的TkMenuFont的示例。 您可以指定要使用的默认字体,并且仍然为任何单个小部件指定不同的非默认字体。例如,您可以将TkMenuFont用于Button小部件,如果需要的话(在我的情况下为14点字体)。似乎应该避免Tk中的另一种怪异现象,那就是您可以更改默认字体的字体,大小,粗细等。至少我没有那么容易。 如果您一定要在托管PAGE的系统上使用GUI应用程序,请选择符合您要求的默认值。但是请记住,如果GUI在其他系统上执行,则这些字体可能不存在。在这种情况下,Tk将为您选择默认值,而这可能不是您想要的。 如果某个小部件的默认字体处于活动状态,它将以默认名称(例如TkMenuFont)出现在“属性编辑器”中,但如果您选择相邻的省略号键,则该字体将被更改为具有由家族,大小,粗细等。这可能不是您想要的,在这种情况下,您可以将字体名称替换为默认字体名称。