调整大小时调用wxpython小部件事件的函数会被调用多次

Pus*_*ade 3 python wxpython

我使用wxpython工具包在python中创建了一个带有GUI的小应用程序.它由一个框架作为顶部窗口和100个StaticText子窗口小部件组成.我已将它们的大小事件绑定(wx.EVT_SIZE)到一个OnResize函数,该函数根据StaticText小部件的大小更改其字体.(这有助于在运行时相应地调整框架窗口大小时增加或减小窗口小部件字体的大小.)

现在的问题是,每次调整框架大小时OnResize都会调用该函数4 times.这大大减慢了我的应用程序的启动速度(以及它的大小调整.)我想要的是该OnResize函数必须只被调用一次.

这有可能吗?

Fog*_*ird 5

考虑另一种方法.

保留先前处理的大小的变量.然后,在您的大小处理程序中,如果小部件的大小自上次大小事件以来实际更改,则仅更改字体大小.

def OnResize(self, event):
    w, h = size = self.GetSize()
    if size != self.previous_size:
        # update font size
    self.previous_size = size
Run Code Online (Sandbox Code Playgroud)