请您看看这个演示,让我知道为什么我无法将高光背景从蓝色更改为白色?
如您所见,我已经设置了
' highlightbackground':'黄色'
在
combostyle = ttk.Style()
combostyle.theme_create('combostyle', parent = 'alt',
settings = {
'TCombobox': {
'configure': {
'fieldbackground': 'white',
'selectbackground': 'white',
'selectforeground': 'black',
'highlightbackground': 'Yellow'
}
}
}
)
combostyle.theme_use('combostyle')
答案 0 :(得分:1)
请您看看这个演示,让我知道为什么我无法将高光背景从蓝色更改为白色?
首先,当您发布代码 - make sure that someone can actually run it以重现您的问题时!
如果您询问有关组合框字段突出显示的信息,请选择以下行:
'selectbackground': 'white',
'selectforeground': 'black'
目前还不清楚,当你提到'highlightbackground': 'Yellow'
时,为什么你不能能够将高亮背景从蓝色变为白色?当你应用这种风格时,也许你做错了什么?
您使用highlightbackground
的原因是什么?据我所知,没有这样的选项(如果有,请更正我),因此如果您需要在组合框字段中将突出显示颜色更改为yellow
,请将selectbackground
行更改为{{ 1}}。
如果你想改变列表框中的高亮颜色 - 这件事有点棘手。根据tcl文档there,你不能直接做这样的事情!
组合框小部件利用pre-ttk Listbox作为其下拉元素,因此当前需要'option'命令来设置列表框选项。
'-selectbackground'和'-selectforeground'(适用于'selected'文本)可以与configure命令一起使用,在使用相关列表框的options数据库时,我们必须使用'selectBackground的相应数据库名称'和'selectForeground'分别注意,数据库名称似乎区分大小写(有关完整列表,请参阅http://www.tcl.tk/man/tcl8.6/TkCmd/options.html)。
通过鼠标指针选择时,相关列表框的上述'selectForeground'和'selectBackground'选项用于实现标准的'悬停'效果。
所以可以这样解决:
'selectbackground': 'yellow'
完整示例:
root.option_add('*TCombobox*Listbox.selectBackground', 'yellow') # change highlight color
root.option_add('*TCombobox*Listbox.selectForeground', 'black') # change text color