【问题标题】:QT Application crashing with QStringList pointersQT 应用程序因 QStringList 指针而崩溃
【发布时间】:2014-07-22 23:38:15
【问题描述】:

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

我想遍历其中一个,然后在 QLabel 上显示 oldFiles 文本,并创建一个 QTextEdit 来伴随每个文本。

所以如果 oldFiles QStringList 中有 3 个条目,我想要一个标签和文本编辑 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 的转换是不可行的。

另外,这段代码使应用程序崩溃,不知道出了什么问题?

谢谢。

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

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

    QString labelText = (*oldFiles)[i];
    

    相信你也可以做到

    QString labelText = oldFiles->at(i);
    

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

    【讨论】:

      猜你喜欢
      • 2020-02-04
      • 2015-07-04
      • 1970-01-01
      • 2015-07-12
      • 2023-03-14
      • 2019-12-26
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多