下面是我的代码的缩影。我在将“组合框”的选定选项(real_optn)插入“文本”框中时遇到问题。我什至无法在绑定方法本身之外的任何位置(display_option)打印该选项。我一直收到的错误是“'Sample'对象没有属性'real_optn'”。在我的一项试用中,我在绑定中使用了self.display_option(name)而不是self.display_option。这样就可以插入了,但是正如人们期望的那样,选择没有更新。我已经阅读了Getting the selected value from combobox in Tkinter,Simple ttk ComboBox demo和其他一些相关查询,但没有回答我的查询。您的提示表示赞赏!
from tkinter import*
from tkinter import ttk
class Sample:
def __init__(self, master,title):
frame.title(title)
frame.geometry('1100x500')
def combo_menu(self,page,name,options):
self.variable = StringVar()
self.name = ttk.Combobox(page,values=options)
self.name.bind("<<ComboboxSelected>>", self.display_option)
current = self.name.current(0)
self.name.pack()
def display_option(self,event):
optn=self.name.get()
mapping_dic = {
"1": "A",
"2": "B",
"3": "C"
}
self.real_optn = mapping_dic.get(optn,"A")
print(self.real_optn)
def output(self,page):
OutputBox=Text(page)
OutputBox.pack()
OutputBox.delete("1.0", "end")
OutputBox.insert(END, self.real_optn)
frame = Tk()
pop = Sample(frame, "Sample")
pop.combo_menu(frame,"first",[1,2,3,4])
pop.output(frame)
frame.mainloop()
答案 0 :(得分:0)
您要在窗口可见之前调用pop.putput(frame)
,这意味着在用户可以选择任何内容之前,即在您创建self.real_optn
之前。