qt addItem()时出错

今天在使用Qt对QComboBox控件添加内容时,不管是用下列两个函数中的哪个都会出问题。

void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant())

void QComboBox::insertItem(int index, const QString &text, const QVariant &userData = QVariant())

之后对添加的内容、函数的使用方法甚至是ComboBox的属性都进行了再三确认,也在新工程上测试过,还是不行。

最后终于发现问题所在了:我的项目在构造函数中对该comboBox对象调用了信号槽连接,即:

QObject::connect(ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(comboBoxSlot()));

应该在调用QComboBox::addItem函数之前使用一下:

QObject::disconnect(ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(comboBoxSlot()));

在添加完成后再调用:

QObject::connect(ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(comboBoxSlot()));

即可。

总结:如果对ComboBox有做信号槽连接,那么在对其内容进行修改时应该先将信号槽连接断开,操作完成后再连接。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值