我在使用qt的commbox控件进行值改变,从而触发信号时,不同的动作也会导致currentindexchanged 触发信号,导致其他控件就会接收到不想要的信号,导致控件功能失效。
1:比如:在对该qcombobox进行添加内容;删除内容;点击不同id进入新的页面时,由于qcombobox的读取数据库已经发生了改变,这个时候就已经触发 了currentindexchanged 信号,从而引起currentindexchanged(int )函数的动作,做出一系列功能。但是此时的函数调用是不必要的,所以在进行以上的动作时,要屏蔽currentindexchanged发出的信号。等修改,增加,进入新的页面后,在开启currentindexchanged的信号发射。
3:怎么做:假如QCombobox的ui名为 mingzi_value
(1) 那么 ui->mingzi_value->blockSignals(true); 这个命令就把 ui->mingzi_value发出的信号屏蔽了,此刻就系统就检测不到ui->mingzi_value 对应的 currentindexchanged信号。
(2)在完成修改,添加后,ui->mingzi_value->blockSignals(false);就把信号打开,可以接收到信号, currentindexchanged()函数就可以继续实现该功能。
以上为对这个功能的理解,欢迎大家讨论。