我Class
在 Qt 中有一个 GUI C++,它有一个SLOT
在QGridLayout
. 该数组是正方形的,取决于变量 say n
。即如果n == 10
那么有10x10
QTextbox
&QLabel
在QGridLayout
. 基本上,当用户按下“增加”按钮时, 的值n
会增加 1 & 相应地QTextbox
&QLabel
被创建在SLOT
& 添加到QGridLayout
. 当值为n
is15
时,更新 GUI 需要1-2 秒。但是,当我使用它时QTime
,SLOT
它告诉我实际执行时间SLOT
约为100 ms。而在我观察到的调试QDebug
模式用于打印经过的时间,即使 GUI 没有针对更高的n
. 我想知道为什么会有这么多延迟以及执行之后运行的内容,SLOT
以便我可以测量相同的时间。我希望我说清楚了。如果您不能理解我的问题,请告诉我。谢谢你。
实际上,我现在没有确切的代码。因此,我创建了一个示例代码,突出显示了我的代码逻辑。请忽略任何语法错误,因为我已经尽快准备好了。很抱歉:(所以这里是代码片段:
Class A
{
private:
int n;
QList <QLabel *> *labelList;
QList <QTextEdit *> *textList;
QGridLayout *inp;
public slots:
updateGUI();
}
A::updateGUI()
{
QTime t;
t.start();
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
int even = j%2;
QLabel *tempLab = new QLabel();
//some stuff for initialisation of the QLabel
QTextEdit *tempText = new QTextEdit();
//some stuff for initialisation of the QTextEdit
labelList->append(tempLab);
textList->append(tempText);
if(even == 0)
inp->AddWidget(tempLab, i, j, 5, 5, Qt::AlignCenter);
else
inp->AddWidget(tempText, i, j, 5, 5, Qt::AlignCenter);
}
}
QDebug("%d", t.elapsed());
}
PS:QTime tobj.start()
是第1行,SLOT
&QDebug("%d", tobj.elapsed())
是SLOT
Ofcourse的最后一行!