メインウィンドウコード内にループがあります。これは、画面上のいくつかのテキストボックスの色を変更するだけです。それは単純ですが、すべての色の変更をユーザーに見えるfor(int i=0; i<200; i++)
ようにしたいので、ループ内に10ms の一時停止のような sth を追加しようとしたので、すべての実行が画面に表示されます。
私はこれを使用しました:
QTimer t;
t.start(10);
QEventLoop loop;
connect(&t, SIGNAL(timeout()), &loop, SLOT(quit()));
loop.exec();
問題は、この 10ミリ秒のペースを常に維持したいので、操作全体に約 2 秒かかることです。残念ながら、それは徐々に遅くなり、非常に激しく、最後の ~20 回の実行にはそれぞれ約 1 秒かかります。
i<20~50のときはかなりまともに見えますが、追加すると大幅に遅くなります...
あまり新品ではないPCのことも考えましたが、操作自体はとても簡単なので、PCが遅いせいではないと思います。私のアプローチが間違っていると思います
PS。実行中、ram usage
私のアプリは約21MBで、cpu
約20-30%です