在我的应用程序中,我有一个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.
我希望我让问题变得简单易懂。