首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类应用程序( tk.Tk )中不可用但在普通tk.Tk中工作的旧主题布局

类应用程序( tk.Tk )中不可用但在普通tk.Tk中工作的旧主题布局
EN

Stack Overflow用户
提问于 2022-08-10 00:52:35
回答 1查看 30关注 0票数 0

我使用了一个名为"forest-light“的主题,正如它在github上的作者所建议的那样实现的。一般来说,在我尝试为其他小部件使用几个布局之前,它的工作效果很好:

代码语言:javascript
复制
import tkinter as tk
from tkinter import ttk


class App(tk.Tk):
    def __init__(self):
        super().__init__()
        ttk.Checkbutton(self, text="Checkbutton", style="ToggleButton").pack()


root = App()

root.tk.call('source', 'forest-light.tcl')
ttk.Style().theme_use('forest-light')

root.mainloop()

我总是会犯错误:

代码语言:javascript
复制
_tkinter.TclError: Layout ToggleButton not found

如果我在没有类的情况下做同样的事情,它的工作原理是:

代码语言:javascript
复制
import tkinter as tk
from tkinter import ttk


root = tk.Tk()

root.tk.call('source', 'forest-light.tcl')
ttk.Style().theme_use('forest-light')

ttk.Checkbutton(root, text="Checkbutton", style="ToggleButton").pack()

root.mainloop()

如有任何见解或帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-10 01:00:36

在第一种情况下,在导入样式并使用它之前,您尝试使用ToggleButton样式:

代码语言:javascript
复制
root = App()   # this is where you use the style
root.tk.call('source', 'forest-light.tcl')  # this is where you import it.

在第二种情况下,在创建ttk.Checkbutton之前导入样式。

代码语言:javascript
复制
root.tk.call('source', 'forest-light.tcl')  # this is where you import it
ttk.Checkbutton(..., style="ToggleButton")  # this is where you use it.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73299547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档