是否可以在“vista”主题上为 fieldbackground 颜色和 ttk.Combobox 的其他部分自定义样式?

问题描述

我需要修改一些 ttk 小部件的外观(样式),针对一些安装了 Python >= 3.8 的 Windows 7 32 位机器。

特别是,我正在尝试更改某些只读状态组合框的条目/字段背景颜色。

这是一个非常简洁的代码示例:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

s = ttk.Style()
s.theme_use('vista')
s.map("Mod.TComboBox",fieldbackground=[('readonly','red')])

cb = ttk.ComboBox(root,style='Mod.TComboBox',state='readonly')
cb.pack()

上面的简单代码示例几乎适用于所有 ttk 内置主题,但不适用于“vista”(也不是“xpnative”),这只是我希望它使用的主题,因为它是认选择到目前为止,Windows 7 机器看起来比其他内置 ttk 主题更漂亮......

所以我的问题是:是否可以使用“vista”主题自定义组合框的 fieldbackground 颜色,或者我是否应该被迫切换到其他东西(例如'winnative' 或 'clam') 能够做出如此简单的改变?

也许是我做错了什么,但代码甚至太简单了,我什至尝试使用不同类型的背景颜色(我的意思是除了 fieldbackground 一种)却从未得到我需要的效果到目前为止......所以我问,在放弃之前,希望也许我只是不知道正确的“技巧”来使'vista'主题工作并且你们中的某个人知道它是否存在......

如果这是可能的,这只是第一步,因为那时我还需要(并且不知道必须为哪些参数设置样式):

  • 当组合框专注于“vista”主题时,移除/更改边框周围出现的微小蓝色光芒
  • 在“vista”主题上更改侧面向下箭头按钮的样式/颜色(并可能使其看起来与在某些情况下禁用时类似...)
  • 更改在“vista”主题上按下侧箭头按钮时显示的下拉列表的背景颜色(顺便说一句,使用命令 s.element_names() 我注意到 ComboBoxPopdownFrame有人知道它的用途是什么吗?

预先感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)