问题描述
我试图做一个练习,使用tkinter
制作屏幕键盘,我几乎完成了程序,效果很好,但是问题是当我进行最后一刻的修饰时,例如为键,我遇到了错误。
style=ttk.Style()
style.configure("mybutton.TButton",font=("montserrat","10","bold"),foreground="white",background="green")
style.configure("myBigbutton.TButton",font=("monserrat","24",background="green")
style.map("myButton.TButton",background=('active','green'))
我为两种不同类型的按钮定义了两种不同的样式,当我使用此map
条件时,我得到了一个错误_tkinter.TclError: Invalid state name a
。如果将active
更改为pressed
,我会得到
_tkinter.TclError: Invalid state name p
作为错误。
解决方法
基于Style.map()
方法的文档,
kw 中的每个键都是一个选项,每个值应该是一个列表或一个元组(通常),其中包含以元组,列表或其他首选项分组的状态规范。
这仅意味着您需要为外部background
或{{1}内的list
关键字嵌套设置状态规范的值(每个状态序列都是序列) } 即使只有一个。
换句话说,您需要编写如下所示的值:
tuple