首页 > 解决方案 > EVT_BUTTON 在帧加载时触发

问题描述

我的应用程序有 2 个框架。通过按下第一帧上的按钮,我可以自由地从第一帧转到第二帧。出于某种原因,当我加载第二帧 EVT_BUTTON 时,我将其绑定到其按钮触发器之一。更糟糕的是,当我在第二帧中单击它时它不会触发。我是 python 和 wx 库的新手,但到目前为止它非常简单,现在我有点卡住了。

class ItemInfo(wx.Frame):
    def __init__(self, parent, item, *args):
        super(ItemInfo, self).__init__(parent)
        self.Centre()
        # self.Size = wx.Size(500, 900)
        self.current_item = self.find_current_item(item)

        #I skipped several boxsizers in this snipped

        test_button = wx.Button(self, label="Test")
        self.Bind(wx.EVT_BUTTON, self.show_current_item_stats(), test_button)
        button_sizer = wx.BoxSizer(wx.HORIZONTAL)
        button_sizer.Add(test_button, wx.ID_ANY, wx.ALIGN_CENTER)

        self.main_sizer = wx.BoxSizer(wx.VERTICAL)
        self.main_sizer.Add(button_sizer, wx.ID_ANY, wx.EXPAND)
        self.SetSizer(self.main_sizer)


     def show_current_item_stats(self):
        self.current_item.stat_bonuses["Strength"] += 510
        self.current_item_strength_bonus.SetLabel(f"Strength: {self.current_item.stat_bonuses['Strength']}")
'''

标签: wxpythonwxwidgets

解决方案


好像我不小心通过添加 () 来调用函数,而不是仅仅绑定它。傻我+)


推荐阅读