问题标签 [qthread]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1788 浏览

python - 从线程接收数据后pyqt主窗口不断崩溃

我有一个 QMainWindow,它启动一个 QThread 并等待来自网络的数据。收到任何数据时更新 UI。

问题是:它有时会崩溃。有时不会,我所做的只是启动它并等待数据。

这是线程类:

为什么会这样??请记住,主窗口本身可以正常工作。

该函数(updateCombo)也可以正常工作(当您从它的类中调用它时)。

但是当我发送数据时主窗口不断崩溃!知道为什么吗?

0 投票
1 回答
1485 浏览

qt - 如何从 QThread 启动 GUI 窗口?

我正在开发一个客户端是单线程的聊天程序,但服务器将为每个连接的客户端启动一个新线程。我相信我的客户端代码是可靠的,但服务器让我感到困惑。

现在,我有一个派生QTcpSocket类来查找传入连接,当它看到一个时,开始一个新的QThread. 运行时QThread,它会创建一个实例QMainWindow(即聊天窗口)并显示它。

我一直在收到类似以下的 stderror 错误,并且QMainWindow从来没有出现过,所以此时聊天是不可能的。

我的问题是:

  • 我是否需要成为 的QThread父母QMainWindow
  • 我是否以完全错误的方式解决这个问题?
  • 关于为什么这不能像我期望的那样工作或如何解决它的任何其他一般性想法也将不胜感激。
0 投票
2 回答
422 浏览

multithreading - 为什么信号/插槽不能与多个线程一起使用?

我试图理解为什么b_slot()没有被调用。谁能解释发生了什么,为什么b_slot()没有被调用?

0 投票
1 回答
496 浏览

c++ - 在 QThread 中制作的 QObject 丢失内部信号/插槽连接

我有一个QThread创建QObject派生对象的工人。该对象是其他两个QObject派生对象的集合,因此存在用于信号链接和将两个内部对象绑定在一起的内部连接。

workerQThread是 a 的成员QPlugin,因此在插件的整个生命周期中都存在。

我遇到的问题是,尽管该对象与应用程序的其余部分交互良好,但这些内部连接似乎已断开。作为一个实验,我尝试在主线程中创建对象并且内部连接正在运行,所以这绝对是我对 s 做错的事情QThread

我还尝试将对象移回主线程(诚然,在建立这些内部连接之后),但它没有效果。我为内部连接循环了每种类型的连接(直接、排队等),但它要么没有效果,要么触发了死锁错误。通过连接传递的所有类型都被注册。

该对象是QObject两个包含对象的父对象,它不应该有所作为,因为它们都驻留在同一个线程中,但我尝试将它们的父对象设置为 NULL 只是为了排除它 - 不出所料,它没有任何影响。QThread不是任何东西的父母。

我唯一不确定的是该对象是从驻留在主线程中的工厂单例创建的,但从工作线程中调用 - 那么它属于谁?我完全不知道我正在做什么(或不做什么)来打破这些联系,因此非常感谢任何帮助。以下是应用程序相关部分的代码:

这是工作线程中的对象创建调用,对于上下文,对象是来自OBJ导入器的多边形网格。

我的应用程序有一个相当广泛的插件架构,因此实际的线程启动代码被抽象为一个抽象工作类:

由于所有相关代码都分布在许多类中,因此我不会列出所有内容(这个问题已经足够长了),但是如果您需要查看其他任何内容,请不要犹豫 - 我需要我能获得的所有帮助一。

0 投票
2 回答
3387 浏览

qt - Object::connect: 没有这样的信号 MyThread::MySignal()

  1. 我的程序有一个线程类。
  2. 信号插槽都在该线程类本身中。
  3. 头文件和源文件是分开的。
  4. main()函数在源文件本身中。

main ()中,我使用如下连接:

.pro文件是:

我在运行时看到了上述错误。请指导。

0 投票
2 回答
648 浏览

c++ - QReadWriteLock 递归模式不起作用

在使用 gcc 4.4.3 的 Linux qt 4.7.4 下,以下代码编译良好并且没有运行时错误。

锁被同一个线程多次锁定,没有任何反应。根据手册http://doc.qt.io/archives/qt-4.7/qreadwritelock.html

锁应该只能被同一个线程锁定一次。这是一些严重的错误还是我误解了手册?

回复 Chris:锁也必须在 NonRecursive 中多次解锁,如果注释掉一个解锁,则以下代码永远不会打印“Writing”。

0 投票
1 回答
214 浏览

qt - qt 使用 qthread 发出的奇怪行为

0 投票
2 回答
697 浏览

qt - 为什么qthread永远不会退出?

输出总是:

f QThread(0xbfdef1e0) 真

f QThread(0xbfdef1e0) 真

f QThread(0xbfdef1e0) 真

我想知道为什么 qthread 永远不会退出,因为我确实使用“QMetaObject::invokeMethod(thread(), "quit", Qt::QueuedConnection);" 在循环内调用了退出

谢谢

0 投票
1 回答
725 浏览

qt - 如果事件列表中的事件太多,为什么应用程序崩溃?

下面的代码会崩溃,甚至挂起linux,有什么想法吗?

0 投票
0 回答
488 浏览

pyqt4 - 使用线程时未调用 QWebPage loadFinished 信号?

我正在尝试在辅助线程中使用 webkit 执行网络请求,并执行所有处理,例如在同一线程中抓取数据。但是,我很困惑为什么 QWebPage 的信号 loadFinished 没有连接。请赐教,因为我还在学习。