繁体   English   中英

清除QTreeWidget时应用程序崩溃

[英]Application crashes when clearing the QTreeWidget

退出和清除QTreeWidget时,我的应用程序崩溃并显示BAD_ACCESS。

这就是我填充树的第一层的方式:

std::set<UrlItem>::iterator i;

for(i = crawler->getUrls()->begin() ; i != crawler->getUrls()->end() ; i++) {
    QList<QString> cells;
    cells.append(i->url);
    cells.append(i->httpStatusMessage);
    cells.append(QString("%1").arg(i->statusCode));

    QTreeWidgetItem *item = new QTreeWidgetItem(ui->resultTreeView, QStringList(cells));

    ui->resultTreeView->addTopLevelItem(item);
}

我相信标题项导致崩溃:

ui->resultTreeView->setHeaderItem(new QTreeWidgetItem(ui->resultTreeView, QStringList(headers)));

我正在做什么导致此崩溃? 动态分配的项目具有树小部件作为其父项,因此仅当树小部件存在时才应销毁它。

似乎我以错误的方式设置了标题。

这工作正常:

QList<QString> headers;
headers.append(tr("Url"));
headers.append(tr("Message"));
headers.append(tr("Status code"));

ui->resultTreeView->setHeaderLabels(QStringList(headers));

现在, setHeaderItem应该做什么,以及它为什么导致我的应用程序崩溃(我不知道,但是上面的代码达到了预期的效果)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM