c++ - 通过槽和信号在不同线程中的两个qt对象之间进行通信
问题描述
我想连接两个在不同线程中运行的 qt 对象。(download_webm 和播放器)
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
DownloadWebm *download_webm;
MyThread *DownloadWebm_Thread = new MyThread(download_webm);
DownloadWebm_Thread->start();
LinuWebmPlayer *player = new LinuWebmPlayer(argv[1],0);
QObject::connect(download_webm,SIGNAL(send_packege(Video_Bytes_Package)),player,SLOT(play()));
player->show();
return app.exec();
}
MyThread 头文件:
#ifndef MYTHREAD_H
#define MYTHREAD_H
#include <qthread.h>
#include <downloadwebm.h>
class MyThread : public QThread
{
Q_OBJECT
public:
MyThread(DownloadWebm *&we);
MyThread();
DownloadWebm **getWebm() const;
protected:
DownloadWebm **webm;
void run();
};
#endif // MYTHREAD_H
和 cpp:
#include "mythread.h"
MyThread::MyThread()
{
}
DownloadWebm **MyThread::getWebm() const
{
return webm;
}
MyThread::MyThread(DownloadWebm *&we)
{
webm = &we;
}
void MyThread::run()
{
*webm = new DownloadWebm("http://trilulilu.de.de/recstreamingsource?movie=3860","asd");
}
如果我从主线评论 QObject:: 连接线,一切正常,关于 qt 中的线程之间的通信,我有什么遗漏吗?
..................................................... ……
解决方案
推荐阅读
- javascript - 遍历数组中的对象数组
- spring-kafka - Spring Kafka Consumer Retry 具有长时间的退避间隔,给出“org.apache.kafka.clients.consumer.CommitFailedException”
- amazon-web-services - 为什么使用 Rusoto 从 S3 下载文件有时会返回一个空白字符串?
- javascript - 如何使用反应钩子将 document.querySelector 转换为用户
- javascript - 使用 Javascript 创建表并根据给定的输入动态传递数据
- python - 从数字中查找第 3 和第 4 位数字
- sql - Oracle SQL/PLSQL:一次性更改特定列的类型
- python - 向 QScrollArea 添加元素时滚动到底部
- java - 如何在 JAVA 中使用 com.google.zxing libraby 在二维码下方添加文本
- python - ModuleNotFoundError:没有名为“tensorflow_hub”的模块