我在Windows 8计算机上使用Python 3.4和Tkinter创建GUI。如何动态更新ttk.combobox?
GUI具有在顶部的一些条目的输入,然后一些组合框。我希望组合框从前面输入(文件名,找到必要信息的行,分隔符类型等)描述的文本文件中获取选项列表。我试图使用postcommand,但它似乎首先运行并且从不更新,而不是每次访问组合框的下拉菜单时更新。
datatypes = []
datatypes = ttk.Combobox(tab_loc, textvariable=std1, values=datatypes, postcommand=self.get_datatypes(datatypes,
self.flnm2.get(), self.hl2_text.get(), self.delim2.get(), self.fcd2_text.get())).grid(pady=v_pad,
padx=h_pad, row=8, column=1, sticky=EW)
def get_datatypes(self, lst, flnm, hl, delim, fcd):
# Problem: postcommand runs at start of GUI. Prevents updating.
lst += ["test", "worked?"]
print("stuff")
lst += flnm
lst += hl
try:
# open the file, get the line, break it apart.
except:
pass
self.flnm2
,self.hl2_text
,self.delim2
,和self.fcd2_text
是一些先前输入。他们是StringVar。
当我运行此代码时,组合框具有选项测试,工作?和两个空白行(推测为flnm
和hl
)。我打算有这样的多个组合框,只是有不同的输入,所以我需要一个功能,我可以给输入,然后更新datatypes
。
我在做什么错?