QT 多執行緒訊號與槽(一)

2021-06-14 12:02:17 字數 1482 閱讀 9052

1.乙個主介面(主線程),乙個次執行緒,次執行緒通過訊號向主線程傳遞遞增變數,主線程將它顯示出來

mythread.h

#include

#include

class

mythread

:public

qthread

;
mythread.cpp

#include

"mythread.h"

#include

mythread::mythread()
void

mythread::run()

}
mainwindow.h
#include

#include

"mythread.h"

namespace

ui

class

mainwindow

:public

qmainwindow

;
mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
mainwindow::mainwindow(qwidget *parent) :
qmainwindow(parent),
ui(new ui::mainwindow)
void mainwindow::set_lineedit_text(qstring str)
{
ui->lineedit->settext(str);
qdebug()<<"from thread slot:" from thread slot: 3062654672 

run thread: 3017550736 

from thread slot: 3062654672 

run thread: 3017550736 

from thread slot: 3062654672 

run thread: 3017550736 

from thread slot: 3062654672

結論:

主線程執行thread.start()後,次執行緒啟動,進入到次執行緒中,

次執行緒傳送訊號給主線程,主線程接收到該訊號,進入槽函式,該槽函式也在主線程中執行。

次執行緒的開始和結束都在run函式中開始和結束

qt 多執行緒 訊號槽

qt訊號多執行緒 當你connect的時候,型別為qt autoconnection就好了 如果slot在同一執行緒就是直接呼叫,如果slot在另外乙個執行緒就通過事件機制處理 在qt中,你的執行緒在呼叫exec函式後就進入了事件迴圈機制 這時,如果另外乙個執行緒傳送了乙個訊號過來 1 如果接收執行...

QT 多執行緒訊號與槽(二)

乙個主線程,乙個次執行緒,主線程向次執行緒傳送訊號 mythread.h include include class mythread public qthread mythread.cpp include mythread.h include mythread mythread void myth...

QT 多執行緒訊號與槽(二)

乙個主線程,乙個次執行緒,主線程向次執行緒傳送訊號 mythread.h include include class mythread public qthread mythread.cpp include mythread.h include mythread mythread void myth...