所以我有一个类SnapshotPanel : public QListWidget,我试图动态地添加一个QListWidgetItem,但是当我尝试的时候,我得到了一个分段错误。我已经验证了添加该项的代码是正确的,因为我可以在构造SnapshotPanel时将其添加到列表中。但是,当通过信号和插槽调用代码时,我不能添加到面板中,因此,对我所缺少的内容的洞察力将被提出来。
下面是构造函数:
SnapshotPanel::SnapshotPanel(QWidget *parent):QListWidget(parent)
{
this->setViewMode(QListWidget::IconMode);
this->setIconSize(QSize(256,256));
this->setResizeMode(QListWidget::Adjust);
QIcon icon("icon.jpeg");
QListWidgetItem *widget = new QListWidgetItem(icon,"Earth");
this->addItem(widget);
}因此,在通过信号和插槽调用时,我是否不能使用以下代码:
{
QIcon icon("icon.jpeg");
QListWidgetItem *widget = new QListWidgetItem(icon,"Earth");
this->addItem(widget);
}发布于 2015-09-25 06:45:20
我觉得它应该能用。“插槽是正常的C++函数”根据文件。
如果您使用的是多个线程,则需要查看连接机制。也许您需要使用排队连接。将从以下位置更改connect语句:
connect(button, &QPushButton::clicked, this, &MainWidget::on_button_clicked);至
connect(button, &QPushButton::clicked, this, &MainWidget::on_button_clicked, Qt::QueuedConnection);但请在这里阅读正式文件。一个这样的问题(基本上指回文档) 就在这里。
https://stackoverflow.com/questions/32769704
复制相似问题