gpt4 book ai didi

c++ - Qt如何实现一个进程循环?

转载 作者:太空狗 更新时间:2023-10-29 23:02:22 27 4
gpt4 key购买 nike

我刚开始使用 Qt,目前正在调整一个命令行程序以将其与 GUI 一起使用。

我正在像这样构建我的 GUI :

int main(int argc, char *argv[])    
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}

我想永久处理一些事件。在命令行中,我使用了一个 while 循环,它工作得很好。使用 Qt,我不知道如何正确处理这些事件。所以我尝试使用 std::thread,但是当我尝试从线程修改 GUI 时,我的 Qt 应用程序崩溃了。使用 QThread 同样的问题。我不需要线程,所以如果我可以将我的代码放在 Qt 的主线程中就好了。

谁能帮帮我?

最佳答案

您可以使用连接到 MainWindow 类中的插槽的 QTimer 来定期运行函数,如下所示:

MainWindow::MainWindow()
{
myTimer = new QTimer();
myTimer->setSingleShot(false);
myTimer->start(intervalInMilliseconds);
connect(myTimer, &QTimer::timeout, this, &MainWindow::handleMyEvents);
}

void MainWindow::handleMyEvents()
{
// Your code here
}

您也可以使用线程,但请注意您不能从任何不是 QApplication 线程的线程调用任何 GUI 代码,这可能是您的尝试失败的原因。

关于c++ - Qt如何实现一个进程循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28793470/

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