您好我有以下代码
def create(self):
geo = StringVar()
city = ttk.Combobox(gui, textvariable=geo,state="readonly")
city.config(values=self.geo)
city.pack()
city.bind("<<ComboboxSelected>>", self.cityselection)
def cityselection(self,event):
selected=event
print(selected)
我想将选定的值从Combobox发送到cityselection函数但是当我打印它时我只得到
VirtualEvent事件x = 0 y = 0
并且无论我选择哪个值都无关紧要我将始终获得上述输出例如:伦敦或多伦多,
答案 0 :(得分:1)
这对我有用:
def create(self):
print(self.geo)
strgeo="\n".join(str(x) for x in self.geo)
print(strgeo)
city = ttk.Combobox(gui, textvariable=self.stringGeo, state="readonly",width=30)
city.config(values=strgeo)
city.pack()
city.bind("<<ComboboxSelected>>",self.selectedCity)
def selectedCity(self,event):
selected=self.stringGeo.get()
答案 1 :(得分:0)
目前,您无法检索geo
的值,因为它未定义为您的类的属性,而是在create
的本地范围内。您可以做的是将geo
声明为静态属性,然后在您需要时从您的方法中调用它。
class(object):
geo = StringVar()
geos = ('NY','LA','RY','...')
def __init__(self,#....
#...
def create(self):
city = ttk.Combobox(gui, textvariable=self.geo,state="readonly")
city.config(values=self.geos)
city.pack()
city.bind("<<ComboboxSelected>>", self.cityselection)
def cityselection(self,event):
selected=self.geo.get()
print(selected)
实际上,event
并非您认为的那样。