目錄
- 1、activated
- 1.1 原型
- 1.2 觸發機制
- 1.3 使用場景
- 1.4 連接信號和槽的方法
- 1.4.1 方式一
- 1.4.2 方式二
- 2、currentIndexChanged
- 2.1 原型
- 2.2 觸發機制
- 2.3 使用場景
- 2.4 連接信號和槽的方法
1、activated
1.1 原型
[signal] void QComboBox::activated(int index)
[signal] void QComboBox::activated(const QString& text)
index
:當前選項索引text
:當前選項的文本
1.2 觸發機制
??activated
信號在用戶從下拉列表中選擇一個選項時發射,不管QComboBox
的當前索引是否發生改變都會發射。(注:在程序里設置當前索引不會觸發activated
信號,activated
信號只會在用戶與QComboBox
交互操作過程中觸發)
1.3 使用場景
??activated
信號通常用于在用戶選擇一個選項時執行某些操作,比如打開一個對話框、更新某個數據模型等。
1.4 連接信號和槽的方法
??因為activated
信號在QComboBox
類中有重載,使用QT5
常規的鏈接方式(如下所示),因為不能明確指定具體是哪個重載函數,所以編譯時會報錯。
QObject::connect(&comboBox, &QComboBox::activated, this, &Dialog::slot1);
??對于這種有重載的信號,要正確連接槽,有兩種方式:
1.4.1 方式一
??使用QT4的連接方法。如下所示:
QObject::connect(&comboBox, SIGNAL(activated(int)), this, SLOT(slot1(int));
或
QObject::connect(&comboBox, SIGNAL(activated(const QString&)), this, SLOT(slot1(const QString&));
1.4.2 方式二
??使用QT文檔推薦的方法,使用函數指針來連接信號與槽。如下所以:
connect(comboBox, QOverload<int>::of(&QComboBox::activated), this, this, &Dialog::slot1);
2、currentIndexChanged
2.1 原型
[signal] void QComboBox::currentIndexChanged(int index)
[signal] void QComboBox::currentIndexChanged(const QString& text)
index
:當前選項索引text
:當前選項的文本
2.2 觸發機制
??currentIndexChanged
信號在QComboBox
類的currentIndex
屬性發生改變時發射,不論這個改變是由用戶操作還是程序設置引起的。(注:如果進行了用戶操作或程序設置,但是currentIndex
屬性值沒有變化,該信號依然是不發射的)
2.3 使用場景
??currentIndexChanged
信號通常用于在當前索引變化時更新與QComboBox
相關的其他界面元素或執行某些操作。
2.4 連接信號和槽的方法
??currentIndexChanged
信號在QComboBox
類中也是有重載,處理方法與activated
信號類似。