Добавление QListWidgetItem в QListWidget

Итак, у меня есть класс 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);
}

1

Решение

Я думаю, что это должно просто работать. «Слоты — это нормальные функции C ++» согласно документация.

Если вы используете несколько потоков, вам нужно изучить механизм подключения. Возможно, вам нужно использовать очереди соединений. Вы бы изменили свои операторы подключения с:

connect(button, &QPushButton::clicked, this, &MainWidget::on_button_clicked);

в

connect(button, &QPushButton::clicked, this, &MainWidget::on_button_clicked, Qt::QueuedConnection);

Но прочитайте официальная документация Вот. ТАК вопрос (в основном указывающий вам обратно на документацию) это здесь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]