Как назначить конкретный номер QListWidget, чтобы его можно было изменить позже? - PullRequest
0 голосов
/ 07 июня 2018

Есть ли способ присвоить конкретный номер int элементу QListWidget?

Я создаю множество экземпляров моего разработанного класса widget, каждый раз выполняя следующие действия и устанавливая настройки.некоторые данные, передавая их в качестве аргументов

MyWidgetClass *object = new MyWidgetClass(this);
object->setData(data_1,data_2,.....,data_n);

, тогда я устанавливаю для этого виджета значение qListWidget для пользовательского интерфейса с помощью QListWidgetItem следующим образом:

QListWidgetItem *listWidgetItem = new QListWidgetItem(ui->qListWidget);
ui->qListWidget->addItem(listWidgetItem);
listWidgetItem->setSizeHint(object->sizeHint());
ui->qListWidget->setItemWidget (listWidgetItem, object);

Позже, в зависимости отсигнал принят, уже переданные данные должны быть изменены автоматически.Итак, я подумал, что если каждому элементу QListWidget назначен какой-либо конкретный номер, он может быть изменен в любое время автоматически.

Любые подсказки или предложения будут оценены.Заранее спасибо.

1 Ответ

0 голосов
/ 07 июня 2018

Чтобы сохранить пользовательские данные в элементе виджета списка, вы можете сделать следующее:

int identifier = 111;
QListWidgetItem *listWidgetItem = new QListWidgetItem(ui->qListWidget);
listWidgetItem->setData(Qt::UserRole, identifier);

и получить его обратно:

int identifier = listWidgetItem->data(Qt::UserRole).toInt();
...