Qt的訊號與槽案例

2021-10-01 22:30:54 字數 1662 閱讀 2177

qt中通過connect()將訊號發生者與訊號接收者繫結在一起,格式如下:

connect(訊號發生者,發生的訊號,訊號接收者,處理函式)

給出乙個學生請老師吃飯,利用訊號與槽機制實現。

軟體需求:建立2個類 teacher類,student類

下課後, 老師teacher zt 會發出(emit)乙個訊號:餓了hungry();

學生響應訊號student st 處理訊號的槽函式:請客吃飯treat()。

如下://1)主函式 標頭檔案one.h

#ifndef one_h

#define one_h

#include

#include

"teacher.h"

#include

"student.h"

class

one:

public qwidget

;#endif

// one_h

//主函式 原始檔one.cpp

#include

"one.h"

//需求:建立2個類 teacher類,student類

//下課後, 老師teacher zt 會發出乙個訊號 餓了

//學生響應訊號student st 處理訊號的槽函式 請客吃飯

one::

one(qwidget *parent)

:qwidget

(parent)

one::

~one()

void one::

classisover()

//2)學生類 標頭檔案student.h

#ifndef student_h

#define student_h

#include

class

student

:public qobject

;#endif

// student_h

//學生類 原始檔student.cpp

#include

"student.h"

#include

student::

student

(qobject *parent)

:qobject

(parent)

void student::

treat()

//3)老師類 標頭檔案student.h

#ifndef teacher_h

#define teacher_h

#include

class

teacher

:public qobject

;#endif

// teacher_h

//老師類 原始檔student.cpp

#include

"teacher.h"

teacher::

teacher

(qobject *parent)

:qobject

(parent)

效果如下:

qt 槽與訊號

槽就是乙個可以被呼叫處理特定訊號的函式 乙個小的qt類如下 class foo public qobject public slots void setvalue int signals void valuechanged int private int val qt中的元物件系統是用來處理物件間通...

QT訊號與槽

初學qt,覺得理解qt訊號與槽比較重要,qt很多時候都需要用到訊號和槽。發射訊號會觸發相對應的槽函式的執行。乙個訊號可以對應多個槽,多個訊號可以對應乙個槽。訊號和槽是通過connect這個方法進行建立聯絡的。qt中有些類會自帶有一些訊號和槽函式,當然訊號和槽函式也可以自己定義。下面來看下很簡單的 會...

Qt訊號與槽

訊號的定義必須在signals 保留字下,並且不需要實現 槽的定義必須在slots 保留字下,需要實現 訊號和槽通過qobject connect函式連線 當訊號被觸發時,槽函式被呼叫 需要注意的是 訊號和槽是qt的拓展,所以實現訊號和槽的類,必須是qobject的子類 實現訊號和槽的類,必須以巨集...