python - 设置 ttk.Combobox 的样式
问题描述
要设置 ttk.Combobox 的样式,我可以这样做:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
combostyle = ttk.Style()
combostyle.theme_create('combostyle', parent='alt',
settings = {'TCombobox':
{'configure':
{'selectbackground': 'blue',
'fieldbackground': 'red',
'background': 'green'
}}}
)
combostyle.theme_use('combostyle')
combo = ttk.Combobox(root, values=['1', '2', '3'])
combo['state'] = 'readonly'
combo.pack()
entry = tk.Entry(root)
entry.pack()
root.mainloop()
但这为所有tkinter 和 ttk 小部件设置了主题。我只想为Combobox设置样式。我怎样才能做到这一点?
我在 Windows 10 上使用 Python 3。
任何帮助是极大的赞赏。
解决方案
您的原始方法配置了一个全局主题。要将主题附加到一个组件,您必须创建它并将其附加到小部件类。
combostyle.configure('MyCustomStyleName.TCombobox', selectbackground = 'blue', ........)
combo = ttk.Combobox(root, values=['1', '2', '3'], style = 'MyCustomStyleName.TCombobox')
推荐阅读
- dialogflow-es - 错误:未设置响应。这是否在未作为对意图处理程序的承诺返回的异步调用中使用?
- python - 如何确保我不会反向比较具有相同大小和内容的两个列表
- spring - LifecycleBase.handleSubClassException Tomcat启动导致空指针异常
- elasticsearch - Elasticsearch 同义词搜索分析器在更新 synonyms.txt 后没有更新?
- reactjs - 在图之外调用 react-d3-graph 函数
- amazon-web-services - Redshift`COPY`命令中`MAXERROR`的默认值是多少?
- python - 如何将视频脚本保存到文本文件?
- postgresql - 已安装 PostGIS,但无法选择版本或添加地理列
- pandas - 如何在 MatPlotLib 中连接两组 XY 散点值?
- java - 使用一种标识处理多个侦听器