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();
程序崩溃
这是因为当程序执行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)))