Инициализация указателя на QListWidgetItem Qt 5.8

В моей программе есть несколько вкладок, и на каждой вкладке есть поле со списком и QListWidget, На основе выбора на выпадающем списке QListWidget будет заселен.

Теперь я пытаюсь добиться того, чтобы пользователь нажимал кнопку "ПРИМЕНИТЬ" после выбора серии элементов в виджете "проверяемого" списка для данного выбора в выпадающем списке, и я буду читать состояние bool для каждого элемента в списке. виджет с помощью указателя QListWidgetItem указатель на виджет списка

Это часть моего кода;

void MainWindow::on_applyButton_clicked()
{
  //Reset list
  MainWindow::revenueList.clear();

  //Processing income statement
  //Select the first item on inc_st_combo
  ui->inc_st_comb->setCurrentText("Revenue Growth");

  //Create an iterator
  QStringListIterator iter(MainWindow::revenue_labels);

  //Loop through the list widget and read bool status
  while(iter.hasNext())
  {
      //Index for the QList
      int index = 0;
      //Create a QListWidgetItem pointer
      QListWidgetItem *listItem = new     QListWidgetItem(iter.next(),Ui_MainWindow::inc_st_list);

      bool status = listItem->checkState();
      qDebug() << "Status: " << status << endl;

      MainWindow::revenueList.append(status);
   }

  qDebug() << "List: " << MainWindow::revenueList << endl;
}

Моя проблема в том, что когда я пытаюсь инициализировать QLsitWidgetItem на следующей строке;

   QListWidgetItem *listItem = new QListWidgetItem(iter.next(),Ui_MainWindow::inc_st_list);

Qt возвращает следующую ошибку;

/Users/Vino/Documents/My Stuff/Qt Projects/Fundemental Analysis/FundementalAnalysis/mainwindow.cpp:389: error: invalid use of non-static data member 'inc_st_list' QListWidgetItem *listItem = new QListWidgetItem(iter.next(),Ui_MainWindow::inc_st_list); ~~~~~~~~~~~~~~~^~~~~~~~~~~

Как мне инициализировать QListWidgetItem указатель на конкретный список виджетов в форме?

1 ответ

Решение

Если вы хотите указатель на уже существующий объект, вы не будете использовать newВам необходимо присвоить ему адрес существующего объекта:

int pos = 0; //determine the right position
QListWidgetItem *listItem = ui->inc_st_list->item(pos);
Другие вопросы по тегам