c++ - QThreads 中断槽和信号

标签 c++ multithreading qt qt4 qt-signals

我有一个包含QThread 的类。在这个类的初始化函数中,线程应该被启动。这工作正常。在线程中我有一个 while(bool certainCondition){} 这个 certainCondition 应该通过信号/槽连接来改变。

问题是在 while 运行期间信号/槽没有打开。

最佳答案

您没有在线程中运行事件循环,或者您在 while 循环中阻塞了很长时间。在您将控制权返回给事件循环之前无法调用您的插槽,这将在您完成 while 循环之后发生。

作为解决方法,您可以尝试调用 QCoreApplication::processEvents()在你的 while 循环中。

关于c++ - QThreads 中断槽和信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16442283/

相关文章:

c++ - 带 OpenGL/Eigen3 的反向运动学 : unstable Jacobian pseudoinverse

C# 将较大的方法分成两个线程

c++ - 如何为QMessageBox中的特定标签设置StyleSheet?

c++ - QGraphicsScene 中的 QGraphicsView 大小

c++ - 构建内部依赖第三方库的c++静态库

c++ - 以最佳方式数值求解矩阵方程

c++ - 将固定长度的数据从 std::istream 复制到字符串

java - 更新 Swing 时等待线程

java - Executors.newSingleThreadExecutor() - 如何查看队列中有多少任务

qt - 如何设置组合框或双旋转框等小部件的背景颜色?