使用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類的控制元件操作函式
}
望各位大佬告知怎么操作。。。。。。
uj5u.com熱心網友回復:
頂一下,雖然用其他控制元件解決了,但我還是想知道用改控制元件如何解決uj5u.com熱心網友回復:
請問車機是QT5.8.0能安裝第三方軟體嗎?求個教程
uj5u.com熱心網友回復:
樓主 遇到同問題 請問用什么控制元件解決的uj5u.com熱心網友回復:
Qlabel
uj5u.com熱心網友回復:
qt機制就是只能在主執行緒里操作UI,其他執行緒禁止操作主UI。在新執行緒里建立QApplication不知道能不能行,但是就算建立了新執行緒的訊息回圈,兩個UI也是不能互通的
uj5u.com熱心網友回復:
建立QObject物件,然后使用moveToThread移送到執行緒中,這樣使用信號槽都沒有問題。轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/91338.html
標籤:Qt
上一篇:QT如何實作通訊資訊快速列印?
下一篇:懸賞iOS外設檢測方案
