タブウィジェットを使用し、いくつかのタブを持つ GUI アプリケーションに取り組んでいます。テーブルのあるタブが 1 つあります。5 秒ごとにテーブルを更新するメソッドを作成しました。これが私のコードです:
void MainWindow::delay(int seconds)
{
QTime dieTime = QTime::currentTime().addSecs(seconds);
while( QTime::currentTime() < dieTime )
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
void MainWindow::on_tabWidget_currentChanged(int inx)
{
if (inx == 3)
{
while (ui->tabWidget->currentIndex() == 3)
{
delay(5);
refreshTable();
}
}
}
私が抱えている問題は、while ループが実行されるたびに CPU の約 30% が使用されていることです。基本的に、アプリケーションは「まだそこにいますか? まだそこにいますか? まだそこにいますか?」と言っています。これはCPUを吸い上げるようです。
システム リソースを制限する方法、またはこれが CPU の大部分を占有しないようにする方法はありますか?