建立自定義專案的方式
實驗環境:linux mint下 qt5.11 c++
主視窗
子視窗這裡介紹兩個關鍵訊號功能的實現:
因為這些操作涉及兩個視窗間的訊號通訊,響應
總體設計思想:
對於func1:
#ifndef mywidget_h#define mywidget_h#include
#include
#include
"houerli.h
"class mywidget : public
qwidget
;#endif
//mywidget_h
#include "對於func2mywidget.h
"mywidget::mywidget(qwidget *parent)
: qwidget(parent)
void
mywidget::openthewindow()
相比func1,func2稍微複雜一些,但只要我們能捋清邏輯,絕非難事。
功能上,我們是點選了子窗體上的乙個按鈕,實現了主視窗顯現的效果,看似是按鈕傳送了新號,實則不然。從主窗體類的**實現通盤考慮,子窗體類的變數hwindow作為主窗體類mywidget的私有屬性出現
從設計實現的角度來看:mywidget來呼叫類的成員函式處理子窗體類houerli發來的訊號,從而實現子窗體變數hwindow的開啟和關閉乃為上策,而不是直接跟子窗體上的乙個按鈕往來什麼訊號(如果mywidget上再定義乙個子窗體上的按鈕類變數,無疑是類設計實現上的乙個噩夢!)
綜上所述,我們的思路變得清晰起來:子窗體上的按鈕,作為觸發子窗體向父窗體傳送訊號的「扳機」
#ifndef houerli_h#define houerli_h#include
#include
class houerli : public
qwidget
;#endif
//houerli_h
#include "接下來,理所應當的,我們要定義主窗體(mywidget)如何處理訊號houerli.h
"#include
houerli::houerli(qwidget *parent) : qwidget(parent)
void
houerli::sendsignal()
void
#ifndef mywidget_h#define mywidget_h#include
#include
#include
"houerli.h
"class mywidget : public
qwidget
;
connect(&hwindow,&houerli::signaltocpc,this,&mywidget::recvsignal);
void整體**mywidget::recvsignal()
專案檔案目錄結構
DAY2 訊號與槽,自定義槽,子視窗,自定義訊號
訊號和槽 connect b1 qpushbutton pressed,this mainwidget close 引數 作用 b1 訊號發出者 指標型別 qpushbutton pressed 處理的訊號 類名 訊號 this 訊號接收者 mainwidget close 槽函式 訊號處理函式 接...
一 自定義訊號槽
qt5 include news h class news public qobject void send signals void new const qstring name private qstring m name reader.h include include class reade...
python 舉一例區別自定義物件與固有物件
如下 a abcdefg b a b ijk print a print a is b print class a def init self,a a.a a a a abcdefg b a b.a ijk print a.a print a is b結果如下 abcdefg false abcde...