QT Creator应用程序开发——信号与槽
目錄
- 一、QWidget基礎窗口控件
- 二、信號與槽實例
- 三、信號與槽的補充知識
一、QWidget基礎窗口控件
QWidget類是所有用戶頁面對象的基類,稱為基礎窗口控件,是一塊矩形的頁面可視區域,且它也可以包含其它控件,包含的子控件會在該區域中顯示并覆蓋,例如創建一個窗口對象w,由于窗口對象默認不會顯示,必須要調用show()方法顯示窗口:
MainWindow w; w.show();
常用的QWidget類控件成員函數有以下(使用時需包含#include < QWidget >頭文件):
1、void QWidget::setGeometry(int x,int y,int w,int h)用于設置窗口的位置和大小;
2、void QWidget::move(int x,int y)用于更改窗口的位置;
3、void QWidget::setWindowTitel(const QString &)用于設置窗口的標題;
4、void QWidget::seWindowState(Qt::WindowStates windowState)用于設置窗口當前的狀態,如全屏,最小化等等。
例如設置一個窗口,x偏移為100,y偏移為200,大小為500×300的窗口,窗口的標題為“標題2022-3-3”,在mian.cpp中寫代碼:
運行結果如下:
二、信號與槽實例
這里通過一個信號與槽的實例來理解信號與槽的相關知識。
例、通過信號與槽實現當用戶點擊一個按鈕控件時,窗口關閉。
首先這里只用到main.cpp源文件,未用到.ui頁面,整個程序步驟可以這樣理解:
1、首先創建一個QWidget窗口,然后在該窗口上添加一個QPushButton按鈕,這里就要通過#include包含這兩個類的頭文件,如下:
然后添加一個窗口對象w以及一個按鈕對象Button,由于是與用戶交互的,要實現當點擊按鈕窗口關閉這一事件,所以按鈕上的文字為“點擊按鈕關閉”,如下:
2、設置窗口與按鈕的位置和大小,這里都是通過通過QWidget控件成員函數的setGeometry()來設置窗口與按鈕的位置和大小,這里簡單介紹一下該成員函數的含義:
這里的參數設置如下,可自行設置:
3、通過connect()函數實現信號和槽
接下來就是設置信號與槽,槽是對信號做出的響應動作,信號和槽都可以通過函數表示,即信號函數和槽函數,這里簡單介紹一下實現信號與槽的函數connect(),函數connect() 是QObject類中的一個靜態成員函數,通過QObject::connect()方式調用,它的參數解釋如下:
也就是通過connect()函數將Button按鈕的clicked()信號函數與w窗口的close()槽函數關聯起來:
4、完整代碼
由于沒使用mainwindow.h頭文件,所以第一行可以刪去,main.cpp的完整代碼如下:
4、執行代碼,觀察結果
點擊左下角的綠色三角,執行代碼,如下:
可看到出現的窗口位于屏幕的位置如代碼中設置:
當鼠標點擊按鈕,窗口關閉:
達到實現要求!
三、信號與槽的補充知識
1、一個connect()函數只能關聯一個信號函數和一個槽函數,程序中可包含多個connect()函數,從而實現以下操作:
另外還可以通過connect()函數中的method參數實現信號之間的關聯,從而一次發出多個信號。
2、并不是所有的控件之間都可以通過信號與槽關聯起來,控件類要直接或間接繼承自QObject類,且控件類必須包含private屬性的Q_OBJECT宏。
總結
以上是生活随笔為你收集整理的QT Creator应用程序开发——信号与槽的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT Creator应用程序开发——QT
- 下一篇: 计算机网络实验(华为eNSP模拟器)——