2014-11-09 10 views
2

QstandardItem의 데이터를 인쇄하는 방법이 있습니까?QStandardItem의 데이터를 "인쇄"하는 방법

QList<QStandardItem*> testQList; 
QString yay = "!Yay"; 
QStandardItem *item = new QStandardItem(yay); 
testQList.append(item); 

qDebug() << testQList; 

난 그냥 메모리 요지를 얻을 (0x409bd00) 내가하지 목록 역 참조 중 하나를 할 수 있습니다.

+0

안녕하세요 닐, 나는 시도 먼저, 나는'불법 indirection' 및 class'에 대한'<< 불법를 얻을 이잖아 – user4217633

답변

3

개체를 사용하여 전체 목록을 인쇄하려고하기 때문에이 오류가 발생합니다. 문자열이있는 목록이 아닙니다. 이 경우 qDebug은 항상 메모리 주소를 인쇄하므로 루프 및 text() 메서드 (반복 목록 던져 넣기)를 사용해야합니다.

for(int i = 0; i<testQList.size();i++) 
{ 
    qDebug() << testQList.at(i)->text(); 
} 
1
#include <QCoreApplication> 
#include <QString> 
#include <QList> 
#include <QDebug> 

class QStandardItem 
{ 
    QString mStr; 
public: 
    QStandardItem(QString str) 
    { 
     mStr = str; 
    } 

    QString toString() 
    { 
     return mStr; 
    } 
}; 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    QList<QStandardItem*> testQList; 
    QString yay = "!Yay"; 
    QStandardItem *item = new QStandardItem(yay); 
    testQList.append(item); 

    for(int i = 0; i<testQList.size();i++) 
    { 
     qDebug() << testQList.at(i)->toString(); 
    } 

    return a.exec(); 
}