wxPython小部件的调整大小事件绑定函数在调整时被多次调用
我用Python和wxpython工具包做了一个小应用,里面有一个图形界面。这个应用有一个主窗口和100个静态文本小部件。我把它们的大小变化事件 (wx.EVT_SIZE)
绑定到了一个叫 OnResize
的函数上,这个函数会根据静态文本小部件的大小来调整它们的字体大小。(这样当我在运行时调整主窗口的大小时,文本的字体也会相应增大或减小。)
现在的问题是,每次我调整主窗口的大小时, OnResize
函数会被调用 4次
。这让我的应用启动变得很慢(调整大小时也是如此)。我希望 OnResize
函数只被调用一次。
这样做有可能吗?
1 个回答
5
考虑一种不同的方法。
保持一个变量,用来记录上一次处理的大小。然后,在处理大小的地方,只有当这个小部件的大小真的发生变化时,才去改变字体大小。
def OnResize(self, event):
w, h = size = self.GetSize()
if size != self.previous_size:
# update font size
self.previous_size = size