我遇到了tkinter按钮样式“ _tkinter.TclError:无效的状态名称a”的问题

问题描述

我试图做一个练习,使用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