gpt4 book ai didi

c++ - QProgressDialog 在 initializeGL 期间不绘制

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:27:20 25 4
gpt4 key购买 nike

我正在使用 QProgressDialog 来显示我的 initializeGL() 函数的进度,但是小窗口显示为未绘制...这是简化的代码:

QProgressDialog barTest("Wait","Ok", 0, 100, this);

barTest.move(400,400);

barTest.show();

for(int i = 0; i < 100; i++)
{
barTest.setValue(i);
qDebug() << i;
}

我正在运行 Mac OS 10.8

最佳答案

问题是,只要您正在执行代码(例如 for 循环),窗口的绘制事件就会卡在 Qt 的事件循环中。

如果你想处理绘制事件,你可以使用QApplication::processEvents :

for(int i = 0; i < 100; i++)
{
barTest.setValue(i);
qDebug() << i;

// handle repaints (but also any other event in the queue)
QApplication::processEvents();
}

根据循环的速度,您可能会发现仅更新每 10% 就足够了,例如:

for(int i = 0; i < 100; i++)
{
barTest.setValue(i);
qDebug() << i;

// handle repaints (but also any other event in the queue)
if(i % 10 == 0) QApplication::processEvents();
}

关于c++ - QProgressDialog 在 initializeGL 期间不绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17272773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com