C Qt引擎 (4)自定義訊號和槽

2021-10-19 18:36:12 字數 1927 閱讀 7747

qt內建了大量訊號和槽,還支援使用者自定義訊號 和 槽

有宣告且有實現返回值型別為void槽函式 可以帶引數,也可以過載(槽函式實參是從訊號而來)寫在signal:下方只需宣告,無需實現返回值為void支援帶參,且可過載emit 可觸發訊號乙個訊號可以被多個槽繫結同乙個槽函式,可以繫結多個訊號訊號 和 槽的函式引數,需要一一對應訊號的引數列表,可以多於槽函式的引數列表;反之,槽函式的引數列表不能多於訊號的引數列表訊號可以繫結訊號disconnect    斷開連線

connect         連線

(1)新建boss類  boss.h  定義建構函式,新增變數,自定義訊號及槽函式

#ifndef boss_h

#define boss_h

#include class boss : public qwidget

;#endif // boss_h

boss.cpp    實現建構函式及槽函式

#include "boss.h"

#include boss::boss(qstring _name, int _exp, qwidget *parent) : qwidget(parent)

void boss::bossdeadslot()

(2)新建role類    role.h    定義槽函式

#ifndef role_h

#define role_h

#include class role : public qwidget

;#endif // role_h

role.cpp    實現槽函式,並過載函式,實現無參及有參的函式

#include "role.h"

#include role::role(qwidget *parent) : qwidget(parent)

void role::getexp()

void role::getexp(int _exp)

(3)widget.h    引入 boss.h 及 role.h 標頭檔案,定義物件,並定義槽函式

#ifndef widget_h

#define widget_h

#include #include "boss.h"

#include "role.h"

class widget : public qwidget

;#endif // widget_h

widget.cpp  訊號和槽自定義的使用

#include "widget.h"

#include "boss.h"

#include #include widget::widget(qwidget *parent)

: qwidget(parent)

widget::~widget()

void widget::bossdeadbroadcast()

標準訊號和槽 自定義槽

main.cpp檔案 mainwindow標頭檔案 因為這裡建立了mainwindow物件,所以我們嘗試建立構造對像 include mainwindow.h include mainwindow mainwindow qwidget parent qmainwindow parent mainwi...

Qt自定義訊號槽

qt自定義訊號槽,在控制台程式中實現 qt5 如下 qt5 include news h class news public qobject void send signals void new const qstring name private qstring m name reader.h i...

Qt 自定義訊號槽

使用 connect 可以讓我們連線系統提供的訊號和槽。但是,qt 的訊號槽機制並不僅僅是使用系統提供的那部分,還會允許我們自己設計自己的訊號和槽。這也是 qt 框架的設計思路之一,用於我們設計解耦的程式。本節將講解如何在自己的程式中自定義訊號槽。訊號槽不是 gui 模組提供的,而是 qt 核心特性...