在我的应用程序中,我有一个QGridLayout涵盖大部分Window. 在其中,我添加了一系列QLineEdit&QLabel对象。目前,当QLineEdit对象数 > 500 &&QLabel对象 > 500 时,GUI速度非常慢,并且对于更大的值无法正常运行。而且大多数这些小部件在窗口中不可见,它们需要滚动才能查看。由于我widgets在grid layout(通过循环和循环后调用repaint)中添加了这么多,所以绘画需要很多时间。所以我有一个解决方案的想法,即使我widgets被添加到Grid Layout不是每个人都被画了。我想要一个rectangle里面所有widgets的东西都被画出来了每当滚动窗口时,矩形的坐标就会更新。但我不知道该怎么做。所以我想知道是否有可能做到这一点?如果可能,请添加一个小示例代码,以便我了解如何实现它。谢谢你。
更新:添加图像来描述情况。
Black Rectangle = QGridLayout say myGid.
Red Rectangle = Bounding Rectangle which is approximately same size as Main Window of my Application.
Green Rectangle = Widgets in myGrid.
Green Rectangle filled with yellow = Widgets shown in Main Window (仅应考虑调用这些小部件repaint),其余未填充的矩形是存在于myGrid但不考虑调用的小部件repaint。因此,当我在我的主应用程序中滚动时,坐标red rectangle会更新并且widgets bounded by it are considered for repaint.
我希望我让问题变得简单易懂。
