2017-02-23 13 views
2

내 프로그램에는 일련의 탭이 있고 각 탭에는 콤보 박스와 QListWidget이 있습니다. 콤보 상자의 선택에 따라 QListWidget이 채워집니다.QListWidgetItem에 대한 포인터 초기화 Qt 5.8

이제 얻으려고하는 것은 사용자가 콤보 상자의 주어진 선택 항목에 대해 "체크 가능"목록 위젯에서 일련의 항목을 선택한 후 "적용"버튼을 누르면 각 항목의 부울 상태를 읽습니다. 포인터를 사용하여 목록 위젯의 항목 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는 다음과 같은 오류를 반환;

I 양식의 특정 listWidget에 가리 키도록 QListWidgetItem 포인터를 초기화하려면 어떻게

/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); ~~~~~~~~~~~~~~~^~~~~~~~~~~? 당신은 당신이 new를 사용하지 않습니다 이미 존재하는 개체에 대한 포인터를 원하는 경우

답변

2

, 당신은 그것을 기존 개체의 주소를 지정해야합니다

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

감사 메이트, 그것은 :) 작동 – Vino