如何解决如何解决 ttk 按钮的样式问题?
我的应用中有一个 TTK 按钮,我想设置它的样式,但问题是其中一些样式不起作用。这是我的按钮样式:
style.configure("Menu.TButton",font=("Times New Roman",20),width=300,padx=20,anchor=W,background="#21252B",foreground="#fff",activebackground="#BD93F9",bd=0)
但是对于这种样式,foreground
只是在按钮上放置了一个白色的叠加层,background
根本不起作用,activebackground
也根本不起作用,而 { {1}} 也不起作用。
那么这些样式的名称是不同的还是我做错了什么?
如果有帮助,这里是按钮的代码:
padx
这里是如何看起来:
解决方法
这里有一些你可以玩的选项:
toolstyle = ttk.Style()
toolstyle.theme_use("clam") # "default","alt" .....
toolstyle.configure('TButton',background="black",foreground="white",borderwidth=1,bordercolor="red",lightcolor="yellow",darkcolor="purple",focuscolor="none",font=("Bahnschrift",14),width=2)
toolstyle.map('TButton',background=[("pressed","white"),("active","grey")],borderwidth=[("active",0)],bordercolor=[("active","blue")],lightcolor=[("active","purple")],darkcolor=[("active","black")],foreground=[("pressed","black"),"red")]
)
,
感谢@j_4321,我找到了解决方法。
默认的 Windows 主题不允许更改按钮样式,因此要更改按钮样式,您需要使用 ttk 提供的主题,例如:style.theme_use("clam")
之后,您可以使用 configure 更改按钮样式。
要在用户单击或悬停按钮时更改按钮的颜色,您可以像这样使用 style.map
:
style.map("Menu.TButton",background=[('!active',"#21252B"),('pressed','#BD93F9'),"#282C34")],foreground=[('!active','#fff'),('active','#fff')])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。