2014-07-22 60 views
0

我有兩個名爲oldFiles和oldDirectories的QStringList指針變量。他們將包含相同數量的項目。QT應用程序與QStringList指針崩潰

我想通過其中一個循環,然後在QLabel上顯示oldFiles文本,並創建一個QTextEdit來陪伴每一個。

因此,如果oldFiles QStringList中有3個輸入,我想要一個標籤和textedit三次。

我有以下代碼:

QVBoxLayout *vbox = new QVBoxLayout; 

for(int i=0; i<oldFiles->size(); ++i){ 
    QString labelText = oldFiles[i]; 
    QLabel *label = new QLabel(); 
    label->setText(labelText); 
    vbox->addWidget(label); 
    QTextEdit *text = new QTextEdit(); 
    vbox->addWidget(text); 
} 

ui->widget->setLayout(vbox); 

首先,它是在說從QStringList中到QString的轉換線QString labelText = oldFiles[i];拋出一個錯誤是沒有生命力的。

此外,此代碼崩潰的應用程序,不知道有什麼問題?

謝謝。

回答

1

oldFiles是QStringList中的指針,這意味着你需要取消對它的引用首先你訪問索引之前:

QString labelText = (*oldFiles)[i]; 

我相信你也能做到

QString labelText = oldFiles->at(i); 

但不要引用我對此,我的Qt很生疏。