QT应用程序崩溃与QStringList指针

时间:2014-07-22 23:38:15

标签: c++ qt

我有两个名为oldFiles和oldDirectories的QStringList指针变量。它们将包含相同数量的项目。

我想循环浏览其中一个,然后在QLabel上显示oldFiles文本并创建一个QTextEdit以配合每个文本。

因此,如果oldFiles QStringList中有3个enteries,我想要一个标签和textedit 3次。

我有以下代码:

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);

首先,它在行QString labelText = oldFiles[i];上抛出错误,说从QStringList转换为QString是不可行的。

此外,此代码正在崩溃应用程序,不确定是什么错误?

感谢。

1 个答案:

答案 0 :(得分:1)

oldFiles是一个QStringList指针,这意味着您需要在访问索引之前取消引用它:

QString labelText = (*oldFiles)[i];

我相信你也可以做到

QString labelText = oldFiles->at(i);

但请不要引用我,我的Qt生锈了。