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

我想遍历其中一个,然后在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的转换不可行。

另外,此代码使应用程序崩溃,不确定是什么问题?

谢谢。

最佳答案

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

QString labelText = (*oldFiles)[i];


我相信你也可以

QString labelText = oldFiles->at(i);


但不要在这方面引用我,我的Qt生锈了。

关于c++ - QT应用程序崩溃与QStringList指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24899582/

10-11 23:20