python - 如何为除 TButton 之外的所有 ttk 小部件配置地图?
问题描述
我正在使用 Tkinter 和 ttk 创建一个 GUI,并且我正在尝试创建一个自定义map
以使 ttk 小部件在悬停时变为蓝色。我可以将其应用于所有小部件,并将"."
其作为第一个参数传递给ttk.Style().map(...)
.
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
style = ttk.Style()
style.map(".", background=[("active", "blue")])
button = ttk.Button(root, text="An example button")
button.pack()
scrollbar = ttk.Scrollbar(root)
scrollbar.pack()
root.mainloop()
但现在我想TButton
从这个查询中排除。也就是说,我需要在悬停时使所有小部件都变成蓝色 TButton
。我怎样才能做到这一点?
传递“.!TButton”以及“!TButton”而不是“.” 没有效果。
解决方案
有一个名为“.”的根样式。要更改每个小部件的某些功能的默认外观,您可以配置此样式。例如,假设您希望所有文本都是 12 磅 Helvetica(除非被其他样式或字体选项覆盖)。
所以我们可以通过简单地添加另一种样式来覆盖它:
style.map('TButton',background=[('active','#f0f0f0')])
请注意,您可能希望对您希望设置为默认的每种样式也执行此操作。
阅读此处了解更多信息。
推荐阅读
- postgresql - PostgreSQL 内连接混淆
- javascript - 更改 Javascript 中的窗口位置是否会杀死事件循环中的当前/即将发生的事件?
- python - 创建一个列表,其中每行在 python 中有多个字段
- python - 将模型字段 (CharField) 显示为动态 URL | 错误:以 10 为基数的 int() 的无效文字:“”
- java - 使用毫秒的 dateFormat 的 SimpleDateFormat 解析问题
- flutter - 颤振圆形图像视图
- vb.net - VB.NET 如何在 WebClient() 请求中插入数据
- pilosa - 有没有办法抵消/限制和计算 Pilosa 查询结果?
- selenium - Selenium 中的 PageFactory 类在哪里?
- r - 在存在数据安全问题的网站上实时显示不断增长的数据库的结果