2

在我的程序中,我有一系列选项卡,每个选项卡上都有一个组合框和一个QListWidget. 根据组合框上的选择,QListWidget将被填充。

现在我想要实现的是用户在“可检查”列表小部件上为组合框中的给定选择选择一系列项目后按下“应用”按钮,我将读取列表中每个项目的布尔状态小部件通过使用指向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指针以指向表单上的特定 listWidget?

4

1 回答 1

2

如果您想要一个指向您不会使用的现有对象的指针,则new需要为其分配现有对象的地址:

int pos = 0; //determine the right position
QListWidgetItem *listItem = ui->inc_st_list->item(pos);
于 2017-02-23T09:59:04.000 回答