Painting
这是对Qt中完成的基本疑问。我有一个QScrollArea
作为我centralWidget
的Main Window
应用程序。我QFrame
frame
在scrollarea
. 的是。Layout
_ 当我添加这样的内容时:QFrame
QGridLayout
widgets
layout
MainWindow::AddLabel()
{
setUpdatesEnabled(false);
QGridLayout *myGrid = (QGridLayout *)ui->frame->layout();
for(int i = 0; i < 1000; i++)
{
QLabel *label = new QLabel();
QString str;
str.SetNum(i);
label->SetText(str);
myGrid->AddWidget(label, 0, i, 0);//add label to i'th column of row 0
}
setUpdatesEnabled(true);
repaint();
}
请不要担心内存泄漏,因为它不是问题的重点。 所以我的疑问是:
disabled
在将小部件添加到布局期间设置更新是否有帮助?即使我最大化窗口,我也不会看到所有的 QLabel。那么当代码流离开上述函数并进入事件循环时,所有 QLabel 和 QFrame 的巨大区域都被绘制了吗?或者只有那些可见的 QLabel 和只有那么多可见的 QFrame 区域被绘制?