QT5.8线程使用主界面控件,要使主界面相关控件在线程里面运行并对控件进行操作(),求解

在下铧茗哥 2019-08-06 02:09:27
使用graphicsView控件显示图片,但是无法通过线程操作改函数显示图片,老是报错,用槽函数的办法显示视频延迟太高 ,帧数一高就挂掉。

我需要的是在线程while中直接修改界面控件的图片。

附槽函数操作代码:
#include "MyThread.h"
#include <QDebug>
#include <QMutex>
#include <QThread>

MyThread::MyThread(MainWindow *ui)
{
this->win = ui;
connect(this, SIGNAL(bar_sig()), this, SLOT(bar_slot()));
isStop = false;
}
MyThread::~MyThread()
{

}

void MyThread::closeThread()
{
isStop = true;
}

void MyThread::pauses()
{
this->pause.lock();
}

void MyThread::resume()
{
this->pause.unlock();
}

void MyThread::run()
{
while (true)
{
pause.lock();
emit bar_sig();
if (isStop)
return;
msleep(420);
pause.unlock();

}
}

void MyThread::bar_slot() {

win->Videorun();
//在槽函数中调用MainWindow类的控件操作函数

}



望各位大佬告知怎么操作。。。。。。
...全文
483 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
满桌烟灰 2019-11-06
  • 打赏
  • 举报
回复
建立QObject对象,然后使用moveToThread移送到线程中,这样使用信号槽都没有问题。
weixin_41986620 2019-11-06
  • 打赏
  • 举报
回复
qt机制就是只能在主线程里操作UI,其他线程禁止操作主UI。 在新线程里建立QApplication不知道能不能行,但是就算建立了新线程的消息循环,两个UI也是不能互通的
在下铧茗哥 2019-11-05
  • 打赏
  • 举报
回复
引用 3 楼 萨依依 的回复:
楼主 遇到同问题 请问用什么控件解决的
Qlabel
萨依依 2019-11-04
  • 打赏
  • 举报
回复
楼主 遇到同问题 请问用什么控件解决的
  • 打赏
  • 举报
回复
引用 1 楼 yang_xiaobai的回复:
顶一下,虽然用其他控件解决了,但我还是想知道用改控件如何解决
请问车机是QT5.8.0能安装第三方软件吗?求个教程
在下铧茗哥 2019-08-08
  • 打赏
  • 举报
回复
顶一下,虽然用其他控件解决了,但我还是想知道用改控件如何解决

16,817

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧