qtreewidgetからトップレベルqtreewidgetitemを削除するにはどうすればよいですか?
-
29-10-2019 - |
質問
トップレベルのアイテム内にチャイルドノードがない場合、トップレベルのツリーウィジェットアイテムを削除しようとしています。これを行う正しい方法は何ですか? QTのドキュメント内でAPI呼び出しを見つけることができないようです。トップレベルのツリーウィジェットアイテムで削除を呼び出すだけで安全ですか?私はまだ問題に遭遇していませんが、それが安全な練習かどうか知りたいです。どうもありがとう。
if(topLevelTreeWidgetItem->childCount() > 1) {
topLevelTreeWidgetItem->removeChild(childItem);
}
else
{
delete topLevelTreeWidgetItem;
}
解決
delete
qtreewidgetitemを直接直接安全にすることは完全に安全です。
のドキュメントによると 〜qtreewidgetitem():
このツリーウィジェットアイテムを破壊します。アイテムは、追加されたqtreewidgetsから削除されます。これにより、いつでもアイテムを削除できます。
私は使用しました delete
実際には多くのqtrewidgetitemsでは、非常にうまく機能します。
他のヒント
トップレベルのアイテムコールを削除するには qtreewidget :: taketoplevelitem メソッドを使用して、返されたアイテムを削除します。
delete treeWidget->takeTopLevelItem(index);
インデックスは、削除されるアイテムのインデックスです。
関数TakeChildはQtreeWidgetItemでのみ動作します。 qtreewidgetを使用すると、使用できます qtreewidget :: taketoplevelitem(int index)
所属していません StackOverflow