2017-02-23 58 views
2

在我的程序中,我有一系列選項卡,每個選項卡上都有一個組合框和一個QListWidget。基於組合框上的選擇,QListWidget將被填充。初始化指向QListWidgetItem的指針Qt 5.8

現在我想實現的是一個用戶在組合框的「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的返回下面的錯誤;

/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點?

回答

2

如果你想要一個指向已存在的對象,你不會使用new,你需要指定它在現有對象的地址:

int pos = 0; //determine the right position 
QListWidgetItem *listItem = ui->inc_st_list->item(pos); 
+0

感謝隊友,它的工作原理:) – Vino