【问题标题】:How to install Python ttk themes如何安装 Python ttk 主题
【发布时间】:2018-04-25 09:42:43
【问题描述】:

这是我在 SO 上的第一篇文章,所以如果我做错了什么,请随时纠正我!

我正在 Windows 上为我的 Raspberry Pi(运行 Raspbian 拉伸)制作一个简单的 GUI(因为我可以在那里使用 PyCharm)。 我想从this site 安装第三方主题,并按照 wiki 上的说明进行操作。但是,在 Windows 和 Raspbian 上,它似乎都可以正确安装而没有任何错误,但是当我这样做检查 ttk 时:

import tkinter.ttk
tkinter.ttk.Style().theme_names()

它仍然显示各个操作系统的默认主题。

我也看过这个 SO 帖子 (How to find or install themes tkinter ttk for Python),但那里没有相关答案。

编辑:我现在知道如何在常规 tkinter/ttk GUI 中使用主题,但我想安装这些主题,以便它们像内置主题一样,因为我正在使用appJar 使用 tkinter 和 ttk 的模块。

任何帮助和指导将不胜感激!

【问题讨论】:

    标签: python-3.x tkinter ttk


    【解决方案1】:

    appJar 对 ttk 的支持仍在开发中,但您可以尝试覆盖默认样式:

    from ttkthemes import ThemedStyle
    app = gui(useTtk=True)
    app.ttkStyle = ThemedStyle(app.topLevel)
    app.ttkStyle.set_theme("plastik")
    

    这告诉 appJar 使用 ttk,但随后将 appJar 正在使用的样式替换为您请求的样式。

    【讨论】:

    • 看到 appJar 的开发者回答我的问题真是一个惊喜!要使其正常工作,必须更改 ThemedStyle(app.topLevel) 以包含括号,使其看起来像这样:ThemedStyle(app.topLevel())。我还(不小心)打错了字,所以 topLevel 的“L”是小写的。这使它工作,(appJar 抱怨未知函数)但是当我将“L”设为大写时,我得到了TypeError: 'Tk' object is not callable,程序将无法运行。这是因为 ttk 支持仍处于测试阶段吗?还是因为其他问题?
    • app.topLevel 是 Tk 对象。所以如果你在它后面加上括号,你会得到not callable 错误。尝试删除括号,并确保拼写错误仍然是固定的。
    • 成功了!我很抱歉没有仔细遵循指示 - 我想我昨晚只是累了。我可以建议您将这些说明放在 appJar 网站上,以便其他人可以看到吗?因为恕我直言,默认的 ttk 主题很差,我认为其他 appJar 用户会喜欢这一点。
    • 很高兴听到它有效。我已经添加了对 tkthemes 的支持并更新了下一个版本的文档:)
    • 好消息,很抱歉再次打扰您,但我发现使用 ttk 和图像时,程序无法运行并给我_tkinter.TclError: unknown option "-bg"。在没有 ttk 的情况下运行时,一切正常。有什么建议? (另外,请让我知道这是否应该在一个单独的问题中打开)
    【解决方案2】:

    您是否导入了他们的包?根据他们的 current 文档,您基本上通过以下方式检查主题:

    from ttkthemes import themed_tk as tk   
    import ttk   #(might need to add tkinter. beforehand)
    window = tk.ThemedTk()
    window.get_themes()
    

    你试过这种方法吗?

    【讨论】:

    • 感谢您的帮助。这确实有效,(耶!)所以很高兴知道它已正确安装。但是,(很抱歉在原始问题中没有提到它)我正在使用一个名为 appJar 的模块,它使用 tkinter 和 ttk。您知道安装主题的任何方法,以便它们像内置主题一样运行吗?再次感谢您的帮助!
    • AFAIK 不,文档真的很稀缺,您可以尝试将主题文件复制到已安装主题的目录中(这会涉及一些修补),但请问您为什么要这样做?顺便说一句,PyCharm 是跨平台的。既然您已经表示您需要一些指导,请避免包含“谢谢您...”的 cmets(而不是投票赞成或接受或两者兼而有之)并欢迎来到 SO :)
    • 为了澄清我想要做什么,appJar 模块只选择内置主题,修改它以导入 ttkthemes 模块是相当困难的。因此,如果 ttkthemes 主题的安装方式与内置主题相同,那么 appJar 应该(理论上)选择并使用它们。希望我已经解释清楚了……对于 PyCharm,我不认为 Raspberry Pi 有 ARM 版本,但如果有,请告诉我。
    • 对不起,考虑到 PyCharm,即使有你也不应该尝试运行它,因为它相对较重,我不明白你想在 RPi 上运行它。根据主题,考虑到 ttk 支持,AppJar 似乎仍处于测试阶段,而且它们仍然存在大量错误,所以我想时间会证明一切,也许他们会添加对非默认主题的支持,我们拭目以待。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 2017-02-21
    相关资源
    最近更新 更多