尝试获取哪个单选按钮触发了事件
我正在尝试在Tkinter中创建一组单选按钮。我希望有一个功能,可以知道最后一个被选中的单选按钮是哪一个。我试着给每个单选按钮绑定事件,但是每次触发事件时,它返回的值都是一样的。
我哪里做错了呢?
代码片段:
i = 0
while i < 5 :
Frame = Tkinter.Frame(self.WS.SW.OptFrame, width=125, height=22, bd=1,
bg=self.WSbg)
Frame.grid(column=0, row=4 + i)
Frame.grid_propagate(0)
self.WS.SW.SearchFrame.append(Frame)
RB = Tkinter.Radiobutton(self.WS.SW.SearchFrame[i], value=i, #command=self.WSRB_UD,
variable=self.WS.RBvar, indicatoron=0, font=self.WSfo,
fg=self.WSfg, activeforeground=self.WSfg, bg=self.WSbg, activebackground=self.WSbg,
selectcolor=self.WSbg, bd=self.WSbw)
RB.grid()
RB.bind( "<Enter>", lambda event: self.WSRB_UD(event, i))
self.WS.SW.SearchRB.append(RB)
i = i + 1
self.QuickLinkList= []
self.WS_timer_count = 0
def WSRB_UD(self, event, opt):
m = self.WS.SW.SearchRB[opt-1].cget("value")
print m
1 个回答
1
你的lambda函数应该像这样:
lambda event, i=i: self.WSRB_UD(event, i))
这段代码在lambda函数内部创建了一个叫做i
的局部变量,这个变量的值是在创建时确定的。