擅长:python、mysql、java
<p>每当您对<code>QTreeWidgetItem</code>调用<code>clear</code>函数时,这些项都会被删除,因此您得到的错误并不奇怪。您可以在<code>QTreeWidget</code>实现的以下摘录中看到:</p>
<pre><code>void QTreeWidget::clear()
{
Q_D(QTreeWidget);
selectionModel()->clear();
//the treeModel here is QTreeModel, refer to snippet below
d->treeModel()->clear();
}
void QTreeModel::clear()
{
SkipSorting skipSorting(this);
for (int i = 0; i < rootItem->childCount(); ++i) {
QTreeWidgetItem *item = rootItem->children.at(i);
item->par = 0;
item->view = 0;
delete item;
}
....
}
</code></pre>
<p>关于搜索实现的实际问题。第一个<a href="http://developer.qt.nokia.com/faq/answer/how_can_i_find_subitems_in_a_qtreewidget_using_finditems" rel="nofollow">here</a>是实现实际搜索功能(不是实时的)的一个很好的片段。(抱歉,它是c++的,但我希望它没问题)。在</p>
<p>要执行实时搜索,您必须将来自<code>QLineEdit</code>的<code>void textChanged(const QString & text)</code>信号连接到执行搜索的插槽。在</p>
<p>我希望这能回答你的问题</p>