Я работаю над графическим приложением, которое использует виджет вкладки и имеет несколько вкладок. У меня есть одна вкладка с таблицей. Я создал метод обновления таблицы каждые 5 секунд. Вот мой код:Ограниченные системные ресурсы Qt C++, доступные для приложения
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();
}
}
}
Вопрос, который я имею, что ~ 30% моего процессора используется всякий раз, когда цикл, пока работает. В основном приложение говорит: «Мы еще там? Мы еще там? Мы еще там?» и это, кажется, всасывает процессор.
Есть ли способ ограничить системные ресурсы или каким-то образом остановить это от захвата большой части процессора?
То, что вы делаете, называется опросом. Вы ищете метод, который позволяет избежать опроса. Похоже, вы можете использовать класс [QTimer] (http://qt-project.org/doc/qt-5.0/qtcore/qtimer.html) для подключения к вашей функции refreshTable в качестве слота. – blueblob
Отлично! Это то, что мне нужно. –