В моей программе есть несколько вкладок, и на каждой вкладке есть поле со списком и 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
указатель на конкретный список виджетов в форме?
Если вы хотите указатель на уже существующий объект, вы не будете использовать new
Вам необходимо присвоить ему адрес существующего объекта:
int pos = 0; //determine the right position
QListWidgetItem *listItem = ui->inc_st_list->item(pos);
Других решений пока нет …