簡體   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