Qt之下拉框QComboBox相关signal对比--activated与currentIndexChanged

来源:互联网 发布:java新技术框架 编辑:程序博客网 时间:2024/05/18 12:40

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 )
0 0