我有两个名为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是不可行的。
此外,此代码正在崩溃应用程序,不确定是什么错误?
感谢。
答案 0 :(得分:1)
oldFiles
是一个QStringList指针,这意味着您需要在访问索引之前取消引用它:
QString labelText = (*oldFiles)[i];
我相信你也可以做到
QString labelText = oldFiles->at(i);
但请不要引用我,我的Qt生锈了。