使用Tkinter绑定传递额外参数

2024-09-19 23:36:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个额外的参数opt绑定到下面的单选按钮。我试图让它这样当WSRBüUD被触发时,我可以知道是哪个单选按钮触发了它。我该怎么做?在

代码段:

        self.WS.SW.SearchFrame = []
        self.WS.SW.SearchRB = []

        self.WS.RBvar  = Tkinter.IntVar()

        i = 0
        while i < 6 :

            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, 
                               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>", self.WSRB_UD, i)
            print i

            self.WS.SW.SearchRB.append(RB)

            i = i + 1

        self.QuickLinkList= []
        self.WS_timer_count = 0

    def WSRB_UD(self, event, opt):
        print self.WS.RBvar.get()

Tags: selfwstkintersw按钮framegridopt
1条回答
网友
1楼 · 发布于 2024-09-19 23:36:45

可以使用lambda定义匿名分部函数:

RB.bind( "<Enter>", lambda event: self.WSRB_UD(event, i) )

如果不喜欢lambda语法,也可以使用functools.partial。在

相关问题 更多 >