gpt4 book ai didi

c++ - Qt C++ 限制应用程序可用的系统资源

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:52 25 4
gpt4 key购买 nike

我正在开发一个 GUI 应用程序,它使用选项卡小部件并具有多个选项卡。我有一个带有表格的选项卡。我创建了一种每 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 循环运行时,大约 30% 的 CPU 都被用完了。应用程序基本上是在说“我们到了吗?我们到了吗?我们到了吗?”这似乎占用了 CPU。

有没有办法限制系统资源,或者有什么方法可以阻止它占用大部分 CPU?

最佳答案

感谢 bluebob 为我指明了正确的方向。这是我的解决方案:

QTimer *timer;

void MainWindow::handleTableRefresh()
{
if (ui->tabWidget->currentIndex() == 3)
{
refreshTable();
}
else
{
disconnect(timer, SIGNAL(timeout()), this, SLOT(handleTableRefresh()));
timer->stop();
}
}

void MainWindow::on_tabWidget_currentChanged(int inx)
{
if (inx == 3)
{
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(handleTableRefresh()));
timer->start(5000);
}
}

关于c++ - Qt C++ 限制应用程序可用的系统资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866398/

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