Qt執行緒的一些控制方法 md

2021-10-09 14:59:44 字數 1732 閱讀 8702

talk is cheap。還是上**吧,很簡單。

void workthread::

start()

void workthread::

dowork()

if(m_bstop)

if(m_bdestory)

#ifdef q_os_win

sleep

(1000);

#else

sleep(1

);#endif

qdebug()

<<

"--"

}void workthread::

stop()

void workthread::

pause()

void workthread::

continue()

void workthread::

destory()

上面的**為控制線程的函式,下面是ui執行緒通過訊號槽來控制**

m_workerthread =

newqthread()

; m_worker =

newworkthread()

; m_worker-

>

movetothread

(m_workerthread)

;connect

(ui-

>btnpause,

&qpushbutton::clicked,

this

,&mainwindow::threadpause, qt::directconnection)

;connect

(ui-

>btncontinue,

&qpushbutton::clicked,

this

,&mainwindow::threadcontinue ,qt::directconnection)

;connect

(ui-

>btnstop,

&qpushbutton::clicked,

this

,&mainwindow::threadstop, qt::directconnection)

;connect

(ui-

>b***estory,

&qpushbutton::clicked,

this

,&mainwindow::threaddestory, qt::directconnection)

;//啟動執行緒

connect

(ui-

>btnstart,

&qpushbutton::clicked,

this

,&mainwindow::threadstart)

;connect

(m_workerthread,

&qthread::started, m_worker,

&workthread::start)

;//stop之後繼續走

connect

(this

,&mainwindow::threadstart, m_worker,

&workthread::start)

;

你會發現我的控制全部使用訊號槽來進行執行緒之間的通訊。

上面的**只是乙個簡單的例子,全部的工程**都在這裡。

Qt 的一些心得

一.背景刷成黑色,前景色設為白色。方法一 paltette方式,經測試,該方法不會影響到其他控制項,推薦使用 qpalette bgpal palette bgpal.setcolor qpalette background,qcolor 0,0 0,255 qpalette background,...

Qt 的一些心得

一.背景刷成黑色,前景色設為白色。方法一 paltette方式,經測試,該方法不會影響到其他控制項,推薦使用 qpalette bgpal palette bgpal.setcolor qpalette background,qcolor 0,0 0,255 qpalette background,...

QT一些筆記

網格布局 void qgridlayout addwidget qwidget widget,int fromrow,int fromcolumn,int rowspan,int columnspan,qt alignment alignment 0 6個引數表示控制項名,行,列,占用行數,占用列數...