qtreewidgetからトップレベルqtreewidgetitemを削除するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/9392051

質問

トップレベルのアイテム内にチャイルドノードがない場合、トップレベルのツリーウィジェットアイテムを削除しようとしています。これを行う正しい方法は何ですか? QTのドキュメント内でAPI呼び出しを見つけることができないようです。トップレベルのツリーウィジェットアイテムで削除を呼び出すだけで安全ですか?私はまだ問題に遭遇していませんが、それが安全な練習かどうか知りたいです。どうもありがとう。

if(topLevelTreeWidgetItem->childCount() > 1) {
  topLevelTreeWidgetItem->removeChild(childItem);
}
else
{
  delete topLevelTreeWidgetItem;
}
役に立ちましたか?

解決

deleteqtreewidgetitemを直接直接安全にすることは完全に安全です。

のドキュメントによると 〜qtreewidgetitem():

このツリーウィジェットアイテムを破壊します。アイテムは、追加されたqtreewidgetsから削除されます。これにより、いつでもアイテムを削除できます。

私は使用しました delete 実際には多くのqtrewidgetitemsでは、非常にうまく機能します。

他のヒント

トップレベルのアイテムコールを削除するには qtreewidget :: taketoplevelitem メソッドを使用して、返されたアイテムを削除します。

delete treeWidget->takeTopLevelItem(index);

インデックスは、削除されるアイテムのインデックスです。

関数TakeChildはQtreeWidgetItemでのみ動作します。 qtreewidgetを使用すると、使用できます qtreewidget :: taketoplevelitem(int index)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top