我在我的主窗口代码中有循环,这只是改变屏幕上一些文本框的颜色。这很简单for(int i=0; i<200; i++)
,但我想让用户看到每个颜色变化,所以在循环中我尝试添加10ms 暂停,所以每次执行都在屏幕上可见。
我用这个:
QTimer t;
t.start(10);
QEventLoop loop;
connect(&t, SIGNAL(timeout()), &loop, SLOT(quit()));
loop.exec();
问题是,我想一直保持这个10 毫秒的速度,所以整个操作大约需要 2 秒。不幸的是,它逐渐变慢,非常难,最后约 20 次处决甚至需要大约 1 秒
当 i<20~50 时它看起来相当不错,添加更多使其显着减慢......
我想到了我的不是全新的电脑,但操作起来真的很简单,所以我不认为这是因为我的电脑速度慢。我假设我的方法是错误的
PS。在执行期间,ram usage
我的应用程序大约为~21MB,cpu
大约20-30%