Python 是否有其他方法可以从组合框更改listbox属性?

Python 是否有其他方法可以从组合框更改listbox属性?,python,tkinter,Python,Tkinter,我一直在寻找更好的解决方案。但是我找不到关于这个的任何东西。我的问题是,我是否可以在不使用根目录的情况下更改列表框。为组合框添加选项(“*TCombobox*listbox*Background”,“#1d2128”)?因此,它工作正常,但我希望在创建的组合框附近进行更改,而不是在根目录下进行更改: from tkinter import * from tkinter import ttk root = Tk() root.geometry("400x200") # li

我一直在寻找更好的解决方案。但是我找不到关于这个的任何东西。我的问题是,我是否可以在不使用
根目录的情况下更改列表框。为组合框添加选项(“*TCombobox*listbox*Background”,“#1d2128”)
?因此,它工作正常,但我希望在创建的组合框附近进行更改,而不是在
根目录下进行更改:

from tkinter import *
from tkinter import ttk

root = Tk()
root.geometry("400x200")

# listbox in combobox attributtes
root.option_add("*TCombobox*Listbox*Background", "#1d2128")
root.option_add("*TCombobox*Listbox*Foreground", "#8b9ebf")
root.option_add("*TCombobox*Listbox*Font", "Courier")


# create a combobox
style = ttk.Style()
style.theme_use("default")
style.map('TCombobox', fieldbackground=[('readonly', "#1d2128")])
style.map('TCombobox', foreground=[('readonly', "#8b9ebf")])
style.map('TCombobox', selectbackground=[('readonly', "#1d2128")])
style.map('TCombobox', background=[('readonly', "#8b9ebf")])
comboBox_Options = ["Option 1", "Option 2", "Option 3", "Option 4"]
comboBox = ttk.Combobox(root, values=comboBox_Options, style="TCombobox", font="Consolas")
comboBox.set("Option 1")
comboBox["state"] = "readonly"
comboBox.pack()

mainloop()

您可以使用以下函数配置组合框的弹出列表框:

def config_组合框_弹出窗口(cb,**kw):
#弹出列表框
popdown=cb.tk.eval(“ttk::combobox::PopdownWindow%s”%cb)
args=[]
对于键,以千瓦为单位的值。项()
参数追加(“-”+键)
附加参数(val)
cb.tk.call(“%s.f.l”%poppdown,“configure”,*args)
...
组合框_Options=[“选项1”、“选项2”、“选项3”、“选项4”]
comboBox=ttk.comboBox(根,值=comboBox\u选项,style=“TCombobox”,font=“Consolas”)
comboBox.set(“选项1”)
组合框[“状态”]=“只读”
comboBox.pack()
配置组合框(组合框,font=“Courier”,前台=“#8b9ebf”,后台=“#1d2128”)

我认为您可以使用
style.configure('TCombobox',opt)
。就像这会改变组合框的背景(当你看到它的时候你会看到),但是不会改变组合框中的列表框(当你放下组合框的时候),我不认为有任何其他方法可以访问widgets选项数据库。你可以等待更多的建议。好的。但是谢谢您(对于其他小部件
configure
工作正常,但是这个组合框有点困难…)好的。。。哇!它工作得很好。但对我来说,代码非常难(因为我是初学者)。我在不同的代码中看到了这个
*args
**kwargs
,但实际上我不知道如何使用它。但我会弄明白的。所以再次感谢!