qthread相关内容

PyQt:如何在不冻结 GUI 的情况下更新进度?

问题: 什么是最佳实践跟踪线程的在不锁定 GUI 的情况下取得进展(“无响应")? 一般来说,最佳做法是什么线程,因为它适用于 GUI发展? 问题背景: 我有一个适用于 Windows 的 PyQt GUI. 用于处理 HTML 集文件. 大约需要三秒钟到三个小时来处理一组文件. 我希望能够处理同时进行多组. 我不想锁定 GUI. 我正在查看线程模块以实现这一目标. ..
发布时间:2021-09-15 19:14:42 其他开发

Python Qt - 如何从另一个线程在表小部件中插入项目?

我想将 Worker Qthread 中的文本项插入到主线程中的 QTableWidget UI 中?. 我想知道在主线程中创建信号的语法,所以我可以通过信号发送从工作线程插入文本以及行和列 类示例(QWidget):def __init__(self):super().__init__()self.myclass2 = myclass2()self.myclass2.start()sel ..
发布时间:2021-06-30 18:57:14 其他开发

QThread 与 QTimer 和 QSerial - 育儿

我正在尝试在不同的线程中分配一个“自包含"通信对象,以使其与 GUI 处理延迟隔离. 因此,在“AppCore"对象创建中,我创建了一个没有父对象的“CommCore": cAppCore::cAppCore(QObject *parent) : QObject(parent){....CommCore = 新的 cCommCore;(这里我在 CommCore 和 AppCore 之间做 ..
发布时间:2021-06-30 18:57:11 其他开发

QThread 和 GUI 线程说明

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

如何结合自己的消息循环和Qt事件循环?

我有一个从 QThread: class MyClass : public QThread 派生的类.在运行方法中,我有“我自己的"消息循环: run() {//执行();//未到达时while (_runMessageLoop && ...) {hr = CallDispatch(.....);if (hr== 0) QThread::msleep(100);//QCoreApplicatio ..
发布时间:2021-06-30 18:57:05 其他开发

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 其他开发

如何停止线程 - 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 其他开发

如何释放Qthread对象的内存?

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

想把一个方法放到一个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 其他开发

在主线程外创建 QDialog 的方法

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

QMutexLocker 中的 QThread ASSERT 失败:“QMutex 指针未对齐",

我正在尝试创建一个上传器来创建新线程,并且在每个线程中我都有一个 QNetworkAccessManager.所有上传线程都有一个对共享列表的引用,并将使用开始和结束索引拆分它. 上传器看起来像这样: class FileUploader : public QObject {Q_OBJECT上市:显式 FileUploader(QList &fileLi ..
发布时间:2021-06-30 18:56:34 其他开发

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 其他开发

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 其他开发