初始化指向 QListWidgetItem Qt 5.8 的指针
Initialising a pointer to QListWidgetItem Qt 5.8
在我的程序中,我有一系列选项卡,每个选项卡上都有一个组合框和一个 QListWidget
。根据组合框上的选择,QListWidget
将被填充。
现在我想要实现的是,用户在组合框中的给定选择的 "checkable" 列表小部件上选择一系列项目后按下 "APPLY" 按钮,我将阅读通过使用指针 QListWidgetItem
指向列表小部件
的指针,列表小部件上每个项目的 bool 状态
这是我的代码的一部分;
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 return下面的错误;
/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?
如果您想要一个指向已存在对象的指针,您将不会使用 new
,您需要为其分配现有对象的地址:
int pos = 0; //determine the right position
QListWidgetItem *listItem = ui->inc_st_list->item(pos);
在我的程序中,我有一系列选项卡,每个选项卡上都有一个组合框和一个 QListWidget
。根据组合框上的选择,QListWidget
将被填充。
现在我想要实现的是,用户在组合框中的给定选择的 "checkable" 列表小部件上选择一系列项目后按下 "APPLY" 按钮,我将阅读通过使用指针 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 return下面的错误;
/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?
如果您想要一个指向已存在对象的指针,您将不会使用 new
,您需要为其分配现有对象的地址:
int pos = 0; //determine the right position
QListWidgetItem *listItem = ui->inc_st_list->item(pos);