Qt的QListWidget清空内容出现段错误

1 问题描述

在使用Qt中的QListWidget控件的时候想要刷新其中的内容执行清空操作的时候出现 “段错误 (核心已转储)”。出现这个问题的具体原因看很多人分析是因为在执行清空前QListWidget控件已经connet到槽函数,所以在clear的时候就会出现段错误,具体的原因这里也不做太多分析。

2 解决方法

解决方法其实也很简单,这里参考了博客中评论区下La estonteco博主的回答成功解决了问题。

ui->listWidget->blockSignals(true);
ui->listWidget->clear();
ui->listWidget->blockSignals(false);

用La estonteco的话来说就是使用blockSignals方法暂时阻塞该对象的所有信号,清空完再启用。这样就可以避免重新绑定信号时可能出现的问题。

posted @ 2024-05-13 11:46  好想说点什么  阅读(93)  评论(0编辑  收藏  举报