小编use*_*381的帖子

使用PyQt,监视窗口大小和调整布局的首选(有效)方法是什么?

我在PyQt中有一个项目网格,当用户修改窗口大小时,我需要相应地增加/减少列数。行数由滚动区域处理,因此我不必担心y方向的变化(如果这样的话)。

在我的QMainWindow实现内部,我知道可以覆盖resizeEvent()函数,该函数将针对所有窗口调整触发。但是,每次使用它来重建网格效率都非常低。只是为了测试该函数以了解其工作原理,我让resizeEvent仅打印了一个字符串,这导致我的窗口调整有些滞后并且在视觉上不完美(抖动而不是平滑)。我可能会对窗口大小运行一个简单的除法运算,以查看它是否变得足够大或更小以更改列数,但是即使这样,当每次调整运行100次时,也可能会导致滞后问题。重建整个网格甚至可能需要花费一秒钟的时间,因此最好不要这样做,因为用户正在操作窗口。

有没有一种更有效的方法,还是resizeEvent是我唯一的选择?理想情况下,我希望事件仅在用户完成调整窗口后才触发,而不是触发几乎每一个像素移动发生的事件(每次调整可能在1秒的时间里发生数百或数千次) 。

我正在使用PyQt5,但是如果您对PyQt4更加熟悉,我可以在PyQt5的背景下找出您的PyQt4解决方案。与C ++ Qt4 / 5解决方案相同。

python qt qt4 pyqt pyqt5

6
推荐指数
2
解决办法
1066
查看次数

标签 统计

pyqt ×1

pyqt5 ×1

python ×1

qt ×1

qt4 ×1