1. 程式人生 > >Qt之下拉框QComboBox相關signal對比--activated與currentIndexChanged

Qt之下拉框QComboBox相關signal對比--activated與currentIndexChanged

1.函式說明

QComboBox的activated與currentIndexChanged兩個Signal都是改變選擇時觸發的訊號,它們分別有兩個過載版本, void activated ( int index ) void activated ( const QString & text ) void currentIndexChanged ( int index ) void currentIndexChanged ( const QString & text ) int型別代表了下拉框被選中項的索引,QString型別代表了下拉框被選中項的內容。

2.訊號差異

activated與currentIndexChanged之間有細微的差別: 訊號activated:只要單擊下拉框,即使所選內容前後沒有變化也會觸發此訊號; 訊號currentIndexChanged 是在單擊下拉框且當所選內容發生變化時才會觸發此訊號。

3.Qt5中使用時注意

Qt5的新connect語法中使用這兩個訊號時需要通過函式指標來指明使用的是過載中的哪一個,Qt4中就不需要了,因為Qt4中Signal需要指明引數型別,如下: QComboBox*box=new QComboBox(this); box->addItem("enock1"); box->addItem("enock2");

void(QComboBox::*fp)(int)=&QComboBox::currentIndexChanged; QObject::connect(box,fp,this,&myWindow::testFun);//void testFun(int);

4.currentTextChanged(const QString & text)

void currentIndexChanged ( const QString & text )