文章目錄
- 前言
- 一、QPushButton
- 二、信號與槽機制
- 總結
前言
一、QPushButton
當我們開發基于Qt框架的圖形用戶界面(GUI)應用程序時,經常需要在界面上添加按鈕來實現用戶交互。Qt提供了一個名為 QPushButton 的類作為按鈕控件的實現。QPushButton是Qt中的標準按鈕類,旨在簡化按鈕的創建和使用。
頭文件 :#include < QPushButton >
QPushButton 用于接受用戶點擊事件。
QPushButton 是功能性組件,需要 父組件 作為 容器 QPushButton 能夠在父組件中進行定位。
以下是QPushButton的常用函數及其作用的表格:
函數名 | 作用 |
---|---|
setText(const QString&) | 設置按鈕的文本內容。 |
setIcon(const QIcon&) | 設置按鈕的圖標。 |
setEnabled(bool) | 設置按鈕是否可用。 |
setChecked(bool) | 設置按鈕是否處于選中狀態。 |
setShortcut(const QKeySequence&) | 設置按鈕的快捷鍵。 |
setDefault(bool) | 設置按鈕是否為默認按鈕,即按下回車鍵時觸發。 |
toggle() | 切換按鈕的選中狀態。 |
animateClick(int) | 以動畫效果模擬按鈕點擊。 |
isCheckable() | 判斷按鈕是否可選中。 |
isChecked() | 判斷按鈕是否選中狀態。 |
isDown() | 判斷按鈕是否被按下。 |
click() | 模擬按鈕點擊。 |
showMenu(QMenu) | 顯示與按鈕關聯的彈出菜單。 |
setMenu(QMenu) | 設置與按鈕關聯的彈出菜單。 |
setStyleSheet(const QString&) | 設置按鈕的樣式表,用于定制按鈕的外觀。 |
resize(int, int) | 調整按鈕的大小。 |
move(int, int) | 移動按鈕的位置。 |
setToolTip(const QString&) | 設置按鈕的工具提示文本,當鼠標懸停在按鈕上時顯示。 |
setToolTipDuration(int) | 設置按鈕工具提示的顯示持續時間。 |
setAutoRepeat(bool) | 設置按鈕是否自動重復發出點擊信號。 |
setAutoRepeatDelay(int) | 設置按鈕自動重復發出點擊信號的延遲時間。 |
setAutoRepeatInterval(int) | 設置按鈕自動重復發出點擊信號的時間間隔。 |
這些函數提供了對按鈕的屬性、狀態、外觀和行為進行設置和控制的方法。通過使用這些函數,我們可以實現自定義的按鈕邏輯和交互效果,并為用戶界面增添更多的交互性和可視化效果。 |
例如:
Qwidget w; //生成 QWidget對象,頂級組件QPushButton b ( &w); //生成QPushButton對象,其父組件為QWidgetb.setText ( "Button") ; //設置顯示的字符串
b.move ( 10,10); //移動到坐標(10,10)
b.resize ( 100,25); //設置大小width = 100,height = 25
二、信號與槽機制
- 信號與槽是Qt框架中一種強大的機制,用于實現對象之間的通信和交互。
它是一種事件驅動的通信機制,可讓 象之間以松散耦合的方式進行通信,實現高效的模塊化設計和編程。
在Qt中,每個QObject派生類都可以定義信號和槽。信號用于發出通知或事件,而槽用于接收并響應這些通知或事件。當信號被觸發時,與之關聯的一個或多個槽函數會被自動調用。
Qt
- Qt中定義了與系統消息相關的概念:
- 信號(Signal ) :由操作系統產生的消息
- 槽(Slot ) : 程序中的消息處理函數
- 連接( Connect ) : 將系統消息綁定到消息處理函數
信號 到 槽的連接必須發生在 兩個 Qt 對象之間。
- Qt 中的關鍵字:
- SIGNAL :用于指定消息名
- SLOT : 用于指定消息處理函數名
- Q_OBJECT : 所有自定義槽的類必須在類聲明的開始處加上
- slots : 用于在類中聲明消息處理函數
- connect 函數
bool connect (const Qobject*sender , // 發送對象const char* signal, // 消息名const Qobject* receiver, // 接收對象const char* method , // 接受對象的成員函數Qt : : ConnectionType type = Qt : : AutoConnection) ;
函數的參數包括信號的 發出者、信號的名稱、槽函數的接收者 和 槽函數 的名稱。
連接之后,當信號被觸發時,與之連接的槽函數會被自動調用。