绑定到 wxpython 小部件的调整大小事件的函数在调整大小时被多次调用
我使用 wxpython 工具包在 python 中制作了一个带有 GUI 的小应用程序。它由一个作为顶部窗口的框架和 100 个 StaticText 子小部件组成。我已将它们的大小事件 (wx.EVT_SIZE)
绑定到 OnResize
函数,该函数根据 StaticText 小部件的大小更改其字体。 (当我在运行时相应地调整框架窗口的大小时,这有助于增加或减少小部件的字体大小。)
现在的问题是 OnResize
函数被调用 4 次
code> 每次我调整框架大小时。这大大减慢了我的应用程序的启动速度(以及它的大小调整速度)。我想要的是 OnResize
函数必须只被调用一次。
这有可能吗?
I have made a small app with a GUI in python using the wxpython toolkit. It consists of a frame as the top window and 100 StaticText child widgets. I have bind their size events (wx.EVT_SIZE)
to a OnResize
function which changes their font according to the size of the StaticText widgets. (This helps to increase or decrease the size of the font of the widgets when I resize my frame window accordingly at runtime.)
Now the poblem is that the OnResize
function gets called 4 times
every time I resize my frame. This considerably slowsdown the startup of my app (and also its resizing.) What I want is that the OnResize
function must get called only once.
Is this possible in any way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
考虑另一种方法。
保留先前处理的大小的变量。然后,在大小处理程序中,仅当小部件的大小自上次大小事件以来实际发生变化时才更改字体大小。
Consider an alternative approach.
Keep a variable of the previously processed size. Then, in your size handler, only change the font size if the size of the widget actually changed since the last size event.