【问题标题】:How to changes fonts using ttk themed widgets in windows如何在 Windows 中使用 ttk 主题小部件更改字体
【发布时间】:2012-04-17 17:47:59
【问题描述】:

在 OS X 上,ttk.Style().configure('TLabelframe.label', font='helvetica 14 bold') 用于更改 ttk.LabelFrame 小部件使用的字体。在 Windows 上,ttk.Style().configure('TLabelframe.label', font='arial 14 bold') 除了将相同的字体信息返回给ttk.Style().lookup('TLabelframe.label','font') 之外没有任何作用。

我尝试了不同的字体名称和格式、创建派生样式、使用 TkDefaultFont 并仅更改大小以及不同的小部件(TButton.label、TCheckbutton.label)。到目前为止,无论我尝试过什么,它似乎总是使用默认大小的 TkDefaultFont。

更改 python27/tcl/tk8.5/ttk/xpTheme.tcl(Windows 上的默认主题)中的字体设置确实会更改显示的字体。从主题设置中删除 -font TkDefaultFont 设置不会更改显示的内容。

关于这实际上是如何工作的任何建议?

编辑:我之前没有尝试过更改 Label 小部件的字体,而那个确实有效。

【问题讨论】:

    标签: python fonts styles widget ttk


    【解决方案1】:

    我相信这方面的代码有问题,会开票。使用'TLableframe.Label'(注意'Label'中的大写'L'有效。'TButton.label'和'TButton.Label'不起作用,但只有'TButton'起作用;'TCheckbutton'是一样的。我是无法使用任何组合更改“TEntry”的字体,包括添加“textarea”。

    【讨论】:

      【解决方案2】:

      对于ttk.LabelFrame,您必须创建一个单独的ttk.Label 小部件,然后使用labelwidget= 操作数将其分配给LabelFrame。您可以在 Label 小部件上设置您想要的任何字体/样式,这些字体/样式将反映在 LabelFrame 中。请注意,您不会为 Label 小部件调用几何管理器。只需实例化它,然后将其分配给 LabelFrame。

      这也意味着,如果您想控制 LabelFrame 中子控件的状态,您几乎可以分配您想要的任何小部件,例如 ttk.Checkbutton。您必须为此编写代码,但在视觉上,它会根据 Checkbutton 的状态启用/禁用子控件。

      来源:http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/ttk-LabelFrame.html

      【讨论】:

        猜你喜欢
        • 2021-12-21
        • 2022-06-13
        • 2013-04-20
        • 2019-10-29
        • 1970-01-01
        • 2015-11-04
        • 2017-04-20
        • 2017-08-22
        • 1970-01-01
        相关资源
        最近更新 更多