qthread相关内容

QThread 和 GUI 线程说明

在官方 Qt 文档中: 如前所述,每个程序在启动时都有一个线程.该线程称为“主线程"(在 Qt 应用程序中也称为“GUI 线程").Qt GUI 必须在这个线程中运行.所有小部件和几个相关的类,例如 QPixmap,在辅助线程中不起作用 现在,在一个 qt 项目中,我尝试了以下代码: QThread* thread = new QThread;DetectList *list = 新 ..
发布时间:2021-06-30 18:57:09 C/C++开发

QThread 中的 QProgressBar 更新退出崩溃

我有以下代码按预期工作.它更新每个 for 循环中的进度条值.我遇到的唯一问题是当我完成并在 OnProcessUserRowsStarted 方法中调用 emit ProcessUserRowsFinished() 时,程序崩溃了. class UsersProcess: public QObject{Q_OBJECT上市:用户进程(CTCore::DBConnect* db_context, ..
发布时间:2021-06-30 18:57:02 其他开发

Qt - 工作线程上的神秘段错误

我正在一个工作线程上实例化 QSystemDeviceInfo,但它会导致段错误. int BatteryInfo::getLevel() {QSystemDeviceInfo sysDevInfo;//当我踩到这一行时发生段错误返回 sysDevInfo.batteryLevel();} 该类是线程安全的,还是问题出在其他地方? 编辑:通过进一步调试,我还注意到本机 Symbian 也 ..
发布时间:2021-06-30 18:56:59 其他开发

如何正确删除和终止 QThread

我有一个继承自 QThread 的子类 MyClass. 我像这样用 MainWindow 实例的父级创建它(这个): mMyClass = new MyClass("some_value", 1, 5L, this); 我对 Qt 如何处理对象删除的理解是,当父对象被删除时,每个具有父对象的 QObject 都会被删除. 如果我的程序完成了,我会收到一个警告 QThread: D ..
发布时间:2021-06-30 18:56:56 C/C++开发

如何停止线程 - Qthread

我必须按两个不同的按钮来启动/停止一个线程. 请建议我的代码是否正确.我是否错过了 connect() 调用中的某些内容? 问题 我面临的是在我的线程上调用 quit() 之后,然后我等待我的线程完成,但是线程上的 wait() 调用 永远不会返回 true, 而我的 程序卡在 , while(!m_deviceThread.wait()) 请建议如何解决这个问题? 我的设备线 ..
发布时间:2021-06-30 18:56:54 其他开发

在 QObjects 之间跨不同线程连接信号/插槽

我想知道在 MainWindow 的构造函数中创建的两个 QObjects 之间连接信号/插槽的最佳实践是什么,但稍后移动到不同的线程......当我使用选项 连接时,默认连接似乎不起作用Qt::Directconnection 事情开始工作...但有时信号/插槽失败...以下是我的代码模式...请告诉我是否需要更改我的类设计... MainWindow.cpp MainWindow::M ..
发布时间:2021-06-30 18:56:51 其他开发

在 Qt 信号中发射 QVector 引用会导致复制

我正在努力构建一个与线扫描相机对话的应用程序.最终,我想每 100 毫秒从 QThread(数据采集)向 QRunnableunsigned short 值的“块"(即数组)/code>(数据处理).这意味着 QRunnable 在下一个块到达之前将有 100 毫秒的时间来处理数据. 我仍然不确定移动数据的正确方法.现在,我正在使用 QVector.在 Qt4 中,我理解隐式共享意味着如果在 ..
发布时间:2021-06-30 18:56:47 C/C++开发

如何释放Qthread对象的内存?

我做过这样的事情: //在主窗口的构造函数中QThread *thr = 新的 QThread;soundWorker * 工作 = 新的 soundWorker;连接(这个,信号(播放声音()),工作,插槽(进程()));工作-> moveToThread(thr);thr->开始(); 我是否应该删除 thr 并在主窗口的析构函数处工作? 解决方案 您可以通过将父级分配给 QThr ..
发布时间:2021-06-30 18:56:44 C/C++开发

想把一个方法放到一个QThread中

如何将类内的方法添加到线程中执行? 我不想将“Pup"放入继承 QThread 的单独类中,因为这只是我正在处理的一些遗留代码的抽象. void Dog::Pup(){printf("小狗");}void Dog::Init(){QThread *dogThread = new QThread();Pup->moveToThread(dogThread);//这都是错的Pup->conne ..
发布时间:2021-06-30 18:56:41 C/C++开发

在主线程外创建 QDialog 的方法

我正在尝试在 QT 中创建一个客户端应用程序,它需要处理线程和可变数量的窗口实例.但是我很难弄清楚如何在其中一个处理线程中创建一个新窗口.我知道所有 ui 元素都必须在与 QApplication 类相同的线程中创建,但我需要能够实例化,或者至少在另一个线程中有对 QDialog 的引用. 线程和 QDialog 之间的通信可以使用信号来完成,我不担心这一点,但实际上创建窗口是另一回事.我可以使 ..
发布时间:2021-06-30 18:56:37 其他开发

Qthread中父类的Python访问小部件

我想访问QThread类中的父类小部件 这一行给出挂起 GUI "Example().setWindowTitle("Window")" 我该怎么做? 类示例(QWidget):def __init__(self):super().__init__()self.myclass2 = myclass2()self.myclass2.start()self.initUI()定义 init ..
发布时间:2021-06-30 18:56:31 Python

QThread 不会停止/不处理信号

我试图在一个单独的线程中执行一些工作,并在工作完成后停止该线程. 我已经建立了这样的连接 thread.connect(workerClass, SIGNAL(finished()), SLOT(quit())); 但是当我发出 finished() 信号时,quit() 槽永远不会被调用.命令行不显示任何与失败连接相关的警告. 我创建了一个简单的测试项目来缩小问题的范围,但我得到 ..
发布时间:2021-06-30 18:56:27 其他开发

QImage 和线程

我在使用 QImages 和 Qthreads 时遇到问题.我正在尝试在线程中加载大图像,然后在 QLabel 上将它们显示为 QPixmap.我的问题是,只要我不使用不同的线程来加载 QImages,一切都是完美的,但是只要我使用不同的线程,就没有渲染器.虽然我的 QImage 仍然有一个有效的大小. 让我感到困惑的是,如果我只是评论 cpp 中将加载器移动到另一个线程的第 22 行,标签 ..
发布时间:2021-06-30 18:56:25 其他开发

QThread 不能正常工作

这是 QTread 的子对象...并在主线程中具体化.... 运行时错误如下: QCoreApplication::sendEvent 中的 ASSERT 失败:“无法将事件发送到不同线程拥有的对象.当前线程 176f0a8.接收者''(类型为 'MainWindow')是在线程 3976a0 中创建的,文件c:\ndk_buildrepos\qt-desktop\src\coreli ..
发布时间:2021-06-30 18:56:22 其他开发

跨 Qt 线程共享数据

我是 Qt 的新手,所以请原谅这个问题的简单性,但我对 Qt 线程有点困惑.假设我有 3 个线程:主要的默认 GUI 线程和我自己创建的 2 个线程(称为 WorkerThread).我的每个 WorkerThread 都继承自 QThread 并且是永久线程,它们经常唤醒并从套接字发送数据并在 GUI 元素上发布状态.1) 允许 GUI 线程在 WorkerThread 线程可以使用的 Work ..
发布时间:2021-06-30 18:56:19 其他开发

如何终止 QThread

最近,我在这个标题中提到了这个问题.我曾尝试使用 QThread::terminate(),但我无法停止处于死循环中的线程(比方说,while(1)). 非常感谢. 解决方案 终止线程是停止异步操作的简单解决方案,但这通常是一个坏主意:线程可能正在执行系统调用或可能处于终止时更新数据结构的中间过程,这可能会使程序甚至操作系统处于不稳定状态. 尝试将您的 while(1) 转换为 ..
发布时间:2021-06-30 18:56:16 其他开发

Qt,如何立即暂停 QThread

我有一个 QThread 监听服务器.我想立即暂停 QThread 的工作.根本不等待,但几乎就像终止一样,必须立即进行. 解决方案 在任何给定线程中运行的代码不能在任意点停止而不破坏代码和/或 C/C++ 中共享数据结构的状态运行时或任何其他使用的库. 代码只能停在明确定义的点上. 如果您的线程运行事件循环(即通常如果您不是从 QThread 派生或不覆盖其 run),则 Q ..
发布时间:2021-06-30 18:56:13 其他开发

暂停和恢复 QThread

我最近开始学习 QThreads,我有一个程序在一个单独的线程中运行 4 小时长的循环(以便我可以继续使用 GUI).我所追求的是,​​当用户单击暂停 qpushbutton 时会暂停/挂起线程,当用户单击恢复 qpushbutton 时,程序应该恢复.我怎样才能做到这一点? 我正在考虑从我的主要班级发送信号;但是,我不确定如何在线程中处理它们.是否可以在线程中处理从主类发送的信号?目前,我 ..
发布时间:2021-06-30 18:56:10 其他开发