Qt之下拉框QComboBox相关signal对比--activated与currentIndexChanged,主要参考Qt5重载信号的写法

本文详细解析了Qt中QComboBox组件的activated与currentIndexChanged信号的区别,包括它们的触发条件及使用方法,同时介绍了如何在Qt5中正确连接这些信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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 )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值