wxPython,如何禁用按钮?

5 投票
1 回答
14253 浏览
提问于 2025-04-17 06:42

我有一组按钮,我写了一个循环来找出哪个按钮被点击了,然后在点击时禁用那个按钮。

下面是我的代码片段:

    def change(self,event):
        self.Disable()


    for i in enumerate(file_pool):
        self.button_pool.append(wx.Button(self.sizer, -1, i[1], pos=(20, i[0]*45),size=(200,40))) #this would create the list of buttons
    for i in self.button_pool:
        i.Bind(wx.EVT_BUTTON, self.change) #bind each button

但是,这段代码会禁用所有的控件,而不仅仅是被点击的那个按钮。我该怎么做才能只禁用被点击的按钮呢?

谢谢!

1 个回答

12

你可以从事件中获取你的对象:

def change(self, event):
    myobject = event.GetEventObject()
    myobject.Disable()

撰写回答