快捷搜索:  汽车  科技

qt动态创建的窗口怎么销毁(qt控件QCombobox调用clear清除程序崩溃)

qt动态创建的窗口怎么销毁(qt控件QCombobox调用clear清除程序崩溃)ui->comboBox->blockSignals(true);//true屏蔽信号 ui->comboBox->clear(); ui->comboBox->blockSignals(false);//false取消屏蔽信号解决方法二,调用clear()函数前,先执行disconnect取消触发信号,在clear()之后再执行connect。代码如下:

qt控件QCombobox调用clear()函数下拉框选项时会导致程序崩溃。

ui->comboBox->clear();

qt动态创建的窗口怎么销毁(qt控件QCombobox调用clear清除程序崩溃)(1)

程序崩溃

这是因为当程序执行ui->comboBox->clear ()时会触发connect (ui->comboBox SIGNAL(currentIndexChanged(int)) this SLOT(slotNameCom(int)))中的槽函数。执行时槽函数中参数index为-1,参数错误。

解决方法一,为先屏蔽函数再清除,代码如下:

ui->comboBox->blockSignals(true);//true屏蔽信号 ui->comboBox->clear(); ui->comboBox->blockSignals(false);//false取消屏蔽信号

解决方法二,调用clear()函数前,先执行disconnect取消触发信号,在clear()之后再执行connect。代码如下:

disconnect(ui->comboBox SIGNAL(currentIndexChanged(int)) this SLOT(slotNameCom(int))); ui->comboBox->clear(); connect(ui->comboBox SIGNAL(currentIndexChanged(int)) this SLOT(slotNameCom(int)))

猜您喜欢: