QTreeWidget Class
QTreeWidget クラスは、あらかじめ定義されたツリーモデルを使用したツリービューを提供します。詳細...
| ヘッダー: | #include <QTreeWidget> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: | QTreeView |
プロパティ
- columnCount : int
(since 6.10)supportedDragActions : Qt::DropActions- topLevelItemCount : int
パブリック関数
| QTreeWidget(QWidget *parent = nullptr) | |
| virtual | ~QTreeWidget() |
| void | addTopLevelItem(QTreeWidgetItem *item) |
| void | addTopLevelItems(const QList<QTreeWidgetItem *> &items) |
| void | closePersistentEditor(QTreeWidgetItem *item, int column = 0) |
| int | columnCount() const |
| int | currentColumn() const |
| QTreeWidgetItem * | currentItem() const |
| void | editItem(QTreeWidgetItem *item, int column = 0) |
| QList<QTreeWidgetItem *> | findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const |
| QTreeWidgetItem * | headerItem() const |
| QModelIndex | indexFromItem(const QTreeWidgetItem *item, int column = 0) const |
| int | indexOfTopLevelItem(QTreeWidgetItem *item) const |
| void | insertTopLevelItem(int index, QTreeWidgetItem *item) |
| void | insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items) |
| QTreeWidgetItem * | invisibleRootItem() const |
| bool | isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const |
| QTreeWidgetItem * | itemAbove(const QTreeWidgetItem *item) const |
| QTreeWidgetItem * | itemAt(const QPoint &p) const |
| QTreeWidgetItem * | itemAt(int x, int y) const |
| QTreeWidgetItem * | itemBelow(const QTreeWidgetItem *item) const |
| QTreeWidgetItem * | itemFromIndex(const QModelIndex &index) const |
| QWidget * | itemWidget(QTreeWidgetItem *item, int column) const |
| void | openPersistentEditor(QTreeWidgetItem *item, int column = 0) |
| void | removeItemWidget(QTreeWidgetItem *item, int column) |
| QList<QTreeWidgetItem *> | selectedItems() const |
| void | setColumnCount(int columns) |
| void | setCurrentItem(QTreeWidgetItem *item) |
| void | setCurrentItem(QTreeWidgetItem *item, int column) |
| void | setCurrentItem(QTreeWidgetItem *item, int column, QItemSelectionModel::SelectionFlags command) |
| void | setHeaderItem(QTreeWidgetItem *item) |
| void | setHeaderLabel(const QString &label) |
| void | setHeaderLabels(const QStringList &labels) |
| void | setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget) |
| void | setSupportedDragActions(Qt::DropActions actions) |
| int | sortColumn() const |
| void | sortItems(int column, Qt::SortOrder order) |
| Qt::DropActions | supportedDragActions() const |
| QTreeWidgetItem * | takeTopLevelItem(int index) |
| QTreeWidgetItem * | topLevelItem(int index) const |
| int | topLevelItemCount() const |
| QRect | visualItemRect(const QTreeWidgetItem *item) const |
再実装されたパブリック関数
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) override |
パブリック・スロット
| void | clear() |
| void | collapseItem(const QTreeWidgetItem *item) |
| void | expandItem(const QTreeWidgetItem *item) |
| void | scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible) |
シグナル
| void | currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous) |
| void | itemActivated(QTreeWidgetItem *item, int column) |
| void | itemChanged(QTreeWidgetItem *item, int column) |
| void | itemClicked(QTreeWidgetItem *item, int column) |
| void | itemCollapsed(QTreeWidgetItem *item) |
| void | itemDoubleClicked(QTreeWidgetItem *item, int column) |
| void | itemEntered(QTreeWidgetItem *item, int column) |
| void | itemExpanded(QTreeWidgetItem *item) |
| void | itemPressed(QTreeWidgetItem *item, int column) |
| void | itemSelectionChanged() |
protected関数
| virtual bool | dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action) |
| virtual QMimeData * | mimeData(const QList<QTreeWidgetItem *> &items) const |
| virtual QStringList | mimeTypes() const |
| virtual Qt::DropActions | supportedDropActions() const |
再実装された保護関数
詳細な説明

QTreeWidget クラスは、Qt 3 の `QListView ` クラスで使用されているものと同様の、古典的なアイテムベースのインターフェースを備えた標準的なツリーウィジェットを提供する利便性クラスです。このクラスは Qt のモデル/ビューアーキテクチャに基づいており、デフォルトのモデルを使用してアイテムを保持します。各アイテムは `QTreeWidgetItem` です。
Model/Viewフレームワークの柔軟性を必要としない開発者は、このクラスを使用して、単純な階層リストを非常に簡単に作成できます。より柔軟なアプローチとしては、QTreeView と標準のアイテムモデルを組み合わせる方法があります。これにより、データの保存とその表現を分離することが可能になります。
最も単純な形では、ツリーウィジェットは次のように構築できます。
auto *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(1);
for (int i = 0; i < 10; ++i)
new QTreeWidgetItem(treeWidget, { tr("item: %1").arg(i) });ツリーウィジェットに項目を追加する前に、setColumnCount() を使用して列数を設定する必要があります。これにより、各項目に 1 つ以上のラベルやその他の装飾を付けることが可能になります。使用中の列数は、columnCount() 関数で確認できます。
ツリーには、ウィジェット内の各列に対応するセクションを含むヘッダーを設定できます。各セクションのラベルを設定するには、setHeaderLabels() に文字列のリストを渡すのが最も簡単ですが、QTreeWidgetItem を使用してカスタムヘッダーを作成し、setHeaderItem() 関数でツリーに挿入することも可能です。
ツリー内の項目は、あらかじめ定義された並べ替え順序に従って列ごとに並べ替えることができます。並べ替えが有効になっている場合、ユーザーは列ヘッダーをクリックして項目を並べ替えることができます。並べ替えの有効化または無効化は、setSortingEnabled() を呼び出すことで行えます。isSortingEnabled() 関数は、並べ替えが有効かどうかを示します。
QTreeWidgetItem 、QTreeWidgetItemIterator 、QTreeView 、および「Model/Viewプログラミング」も参照してください 。
プロパティのドキュメント
columnCount : int
このプロパティは、ツリーウィジェットに表示される列の数を保持します
デフォルトでは、このプロパティの値は 1 です。
アクセス関数:
| int | columnCount() const |
| void | setColumnCount(int columns) |
[since 6.10] supportedDragActions : Qt::DropActions
このプロパティには、このビューでサポートされているドラッグ操作が格納されています
この列挙型は Qt 6.10 で導入されました。
アクセス関数:
| Qt::DropActions | supportedDragActions() const |
| void | setSupportedDragActions(Qt::DropActions actions) |
関連項目: ` Qt::DropActions ` および `supportedDropActions()`。
[read-only] topLevelItemCount : int
このプロパティは、最上位レベルの項目の数を保持します
デフォルトでは、このプロパティの値は 0 です。
アクセス関数:
| int | topLevelItemCount() const |
columnCount() およびcurrentItem()も参照してください 。
メンバ関数のドキュメント
[explicit] QTreeWidget::QTreeWidget(QWidget *parent = nullptr)
指定されたparent を使用して、ツリーウィジェットを作成します。
[virtual noexcept] QTreeWidget::~QTreeWidget()
ツリーウィジェットとそのすべての項目を破棄します。
void QTreeWidget::addTopLevelItem(QTreeWidgetItem *item)
item をウィジェットの最上位項目として追加します。
「insertTopLevelItem()」も参照してください 。
void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem *> &items)
items のリストを、ウィジェットのトップレベル項目として追加します。
insertTopLevelItems()も参照してください 。
[slot] void QTreeWidget::clear()
ツリーウィジェットからすべての項目と選択状態を削除して、ウィジェットをクリアします。
注:各アイテムは削除される前にツリーウィジェットから削除されるため、アイテムのデストラクタからQTreeWidgetItem::treeWidget()を呼び出した場合、その戻り値は無効になります。
関連項目: takeTopLevelItem()、topLevelItemCount()、およびcolumnCount()。
void QTreeWidget::closePersistentEditor(QTreeWidgetItem *item, int column = 0)
指定されたcolumn 内のitem に対応するパーシステントエディタを閉じます。
このアイテムと列の組み合わせに対して、永続エディタが開かれていない場合、この関数は何の効果も持ちません。
openPersistentEditor() およびisPersistentEditorOpen()も参照してください 。
[slot] void QTreeWidget::collapseItem(const QTreeWidgetItem *item)
item を閉じます。これにより、そのアイテムの子要素を含むツリーが折りたたまれます。
関連項目: expandItem()、currentItem()、itemAt()、およびtopLevelItem()。
int QTreeWidget::currentColumn() const
ツリーウィジェット内の現在の列を返します。
setCurrentItem() およびcolumnCount()も参照してください 。
QTreeWidgetItem *QTreeWidget::currentItem() const
ツリーウィジェット内の現在の項目を返します。
setCurrentItem() およびcurrentItemChanged()も参照してください 。
[signal] void QTreeWidget::currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
このシグナルは、現在の項目が変更されたときに発火します。現在の項目は `current` で指定され、これにより `previous ` の現在の項目が置き換えられます。
setCurrentItem()も参照してください 。
[override virtual protected] void QTreeWidget::dropEvent(QDropEvent *event)
QAbstractItemView::dropEvent (QDropEvent *event)を再実装します。
[virtual protected] bool QTreeWidget::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action)
指定されたparent アイテム内のindex で、指定されたaction で終了したドラッグ&ドロップ操作によって渡されたdata を処理します。
デフォルトの実装では、MIME データをデコードしてモデルに挿入することでドロップが正常に処理された場合は `true ` を返し、そうでない場合は `false` を返します。
supportedDropActions() およびsupportedDragActionsも参照してください 。
void QTreeWidget::editItem(QTreeWidgetItem *item, int column = 0)
指定されたcolumn 内のitem が編集可能な場合、その編集を開始します。
[override virtual protected] bool QTreeWidget::event(QEvent *e)
QAbstractItemView::event(QEvent *event) を再実装します。
[slot] void QTreeWidget::expandItem(const QTreeWidgetItem *item)
item を展開します。これにより、その項目の子要素を含むツリーが展開されます。
関連項目: collapseItem()、currentItem()、itemAt()、topLevelItem()、およびitemExpanded()。
QList<QTreeWidgetItem *> QTreeWidget::findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const
指定されたtext に一致する項目のリストを、指定されたflags を使用して、指定されたcolumn 内で返します。
QTreeWidgetItem *QTreeWidget::headerItem() const
ツリーウィジェットのヘッダーに使用される項目を返します。
setHeaderItem()も参照してください 。
QModelIndex QTreeWidget::indexFromItem(const QTreeWidgetItem *item, int column = 0) const
指定された `item ` に関連付けられた `QModelIndex ` を、指定された `column` から返します。
注: Qt 5.7 以前のバージョンでは 、この関数は `const ` ではない `item` を引数として受け取っていました。
itemFromIndex() およびtopLevelItem()も参照してください 。
int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item) const
指定されたトップレベルのitem のインデックスを返します。項目が見つからない場合は-1を返します。
sortItems() およびtopLevelItemCount()も参照してください 。
void QTreeWidget::insertTopLevelItem(int index, QTreeWidgetItem *item)
ビューの最上位レベルにあるindex に、item を挿入します。
その項目がすでに他の場所に挿入されている場合は、挿入されません。
addTopLevelItem() およびcolumnCount()も参照してください 。
void QTreeWidget::insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)
index にある「items 」のリストを、ビューの最上位に挿入します。
すでに他の場所に挿入されている項目は、挿入されません。
addTopLevelItems()も参照してください 。
QTreeWidgetItem *QTreeWidget::invisibleRootItem() const
ツリーウィジェットの非表示のルート項目を返します。
この非表示のルート項目により、QTreeWidgetItem APIを通じてツリーウィジェットのトップレベル項目にアクセスできるようになり、トップレベル項目とその子項目を統一的な方法で扱う関数(例えば、再帰関数など)を作成することが可能になります。
bool QTreeWidget::isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const
列column の項目item に対して、永続エディタが開かれているかどうかを返します。
openPersistentEditor() およびclosePersistentEditor()も参照してください 。
QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item) const
指定されたitem より上の項目を返します。
[signal] void QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)
このシグナルは、ユーザーがアイテムをシングルクリックまたはダブルクリック(プラットフォームによって異なります。例えば、QStyle::SH_ItemView_ActivateItemOnSingleClick スタイルのヒントなど)でアクティブにした場合、あるいは特殊キー(例:Enter )を押した場合に発火します。
指定されたitem は、クリックされた項目です。項目がクリックされなかった場合はnullptr となります。column は、クリックされた項目の列です。項目がクリックされなかった場合は-1となります。
QTreeWidgetItem *QTreeWidget::itemAt(const QPoint &p) const
座標p にあるアイテムへのポインタを返します。この座標は、ツリーウィジェットのviewport()を基準としています。
visualItemRect()も参照してください 。
QTreeWidgetItem *QTreeWidget::itemAt(int x, int y) const
座標 (x,y) にあるアイテムへのポインタを返します。座標は、ツリーウィジェットのviewport() に対する相対座標です。
これはオーバーロードされた関数です。
QTreeWidgetItem *QTreeWidget::itemBelow(const QTreeWidgetItem *item) const
指定されたitem の直下に、視覚的に配置されるアイテムを返します。
[signal] void QTreeWidget::itemChanged(QTreeWidgetItem *item, int column)
指定されたitem 内のcolumn の内容が変更されたときに、このシグナルが発信されます。
[signal] void QTreeWidget::itemClicked(QTreeWidgetItem *item, int column)
このシグナルは、ユーザーがウィジェット内をクリックしたときに発生します。
指定されたitem は、クリックされたアイテムです。column は、クリックされたアイテムの列です。アイテムがクリックされなかった場合、シグナルは発火されません。
[signal] void QTreeWidget::itemCollapsed(QTreeWidgetItem *item)
このシグナルは、指定されたitem が折りたたまれ、その子要素が一切表示されなくなったときに発火します。
注: collapseAll() が呼び出された際に、アイテムの状態が変更された場合、この シグナルは 発火しません。
関連項目: QTreeWidgetItem::isExpanded()、itemExpanded()、collapseItem()。
[signal] void QTreeWidget::itemDoubleClicked(QTreeWidgetItem *item, int column)
このシグナルは、ユーザーがウィジェット内をダブルクリックしたときに発生します。
指定されたitem は、クリックされたアイテム、またはアイテムがクリックされなかった場合はnullptr となります。column は、クリックされたアイテムの列です。アイテムがダブルクリックされなかった場合、シグナルは発火しません。
[signal] void QTreeWidget::itemEntered(QTreeWidgetItem *item, int column)
このシグナルは、マウスカーソルが指定されたcolumn 上のitem に入ったときに発生します。QTreeWidget この機能が動作するには、マウストラッキングが有効になっている必要があります。
[signal] void QTreeWidget::itemExpanded(QTreeWidgetItem *item)
このシグナルは、指定されたitem が展開され、そのすべての子要素が表示されたときに発せられます。
QTreeWidgetItem::isExpanded()、itemCollapsed()、およびexpandItem()も参照してください 。
QTreeWidgetItem *QTreeWidget::itemFromIndex(const QModelIndex &index) const
指定されたindex に関連付けられたQTreeWidgetItem へのポインタを返します。
indexFromItem()も参照してください 。
[signal] void QTreeWidget::itemPressed(QTreeWidgetItem *item, int column)
このシグナルは、ユーザーがウィジェット内でマウスボタンをクリックしたときに発生します。
指定されたitem は、クリックされたアイテム、またはアイテムがクリックされなかった場合はnullptr です。column は、クリックされたアイテムの列、またはアイテムがクリックされなかった場合は-1です。
[signal] void QTreeWidget::itemSelectionChanged()
このシグナルは、ツリーウィジェットでの選択内容が変更されたときに発火します。現在の選択内容は、selectedItems() を使用して取得できます。
QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const
item で指定されたセルおよび指定されたcolumn に表示されているウィジェットを返します。
setItemWidget() およびremoveItemWidget()も参照してください 。
[virtual protected] QMimeData *QTreeWidget::mimeData(const QList<QTreeWidgetItem *> &items) const
指定されたitems のシリアライズされた記述を含むオブジェクトを返します。項目の記述に使用される形式は、mimeTypes()関数から取得されます。
項目のリストが空の場合、シリアライズされた空のリストではなく、nullptr が返されます。
[virtual protected] QStringList QTreeWidget::mimeTypes() const
ツリーウィジェットの項目リストを記述するために使用できるMIMEタイプのリストを返します。
mimeData()も参照してください 。
void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column = 0)
指定されたcolumn 内のitem に対して、永続的なエディタを開きます。
closePersistentEditor() およびisPersistentEditorOpen()も参照してください 。
void QTreeWidget::removeItemWidget(QTreeWidgetItem *item, int column)
指定された `item ` で設定されたウィジェットを、指定された `column` から削除します。
itemWidget() およびsetItemWidget()も参照してください 。
[slot] void QTreeWidget::scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)
item が表示されるようにし、必要に応じて指定されたhint を使用してビューをスクロールします。
currentItem()、itemAt()、およびtopLevelItem()も参照してください 。
QList<QTreeWidgetItem *> QTreeWidget::selectedItems() const
選択されている非非表示の項目すべてのリストを返します。
itemSelectionChanged()も参照してください 。
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item)
ツリーウィジェット内の現在のitem を設定します。
選択モードがNoSelection でない限り、その項目も選択されます。
currentItem() およびcurrentItemChanged()も参照してください 。
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column)
ツリーウィジェットの現在のitem と、現在の列をcolumn に設定します。
currentItem()も参照してください 。
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column, QItemSelectionModel::SelectionFlags command)
指定されたcommand を使用して、ツリーウィジェットの現在のitem と現在の列をcolumn に設定します。
currentItem()も参照してください 。
void QTreeWidget::setHeaderItem(QTreeWidgetItem *item)
ツリーウィジェットのヘッダー「item 」を設定します。ヘッダーの各列のラベルは、アイテム内の対応するラベルから取得されます。
ツリーウィジェットは、その項目の所有権を取得します。
headerItem() およびsetHeaderLabels()も参照してください 。
void QTreeWidget::setHeaderLabel(const QString &label)
setHeaderLabels (QStringList (label ))と同じです。
void QTreeWidget::setHeaderLabels(const QStringList &labels)
labels リスト内の各項目について、ヘッダーに列を追加し、各列のラベルを設定します。
setHeaderLabels() は既存の列を削除しないことに注意してください。
setHeaderItem() およびsetHeaderLabel()も参照してください 。
void QTreeWidget::setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget)
指定されたwidget を、指定されたitem およびcolumn で指定されたセルに表示するように設定します。
指定されたwidget のautoFillBackground プロパティはtrueに設定されている必要があります。そうしないと、ウィジェットの背景が透明になり、モデルデータとツリーウィジェットの項目の両方が表示されてしまいます。
この関数は、ツリーウィジェットの項目の代わりに静的なコンテンツを表示する場合にのみ使用してください。カスタムの動的コンテンツを表示したり、カスタムエディタウィジェットを実装したりする場合は、代わりに `QTreeView ` を使用し、`QStyledItemDelegate ` をサブクラス化してください。
この関数は、アイテム階層が構築される前に呼び出すことはできません。つまり、`widget ` が設定される前に、`widget ` を保持する `QTreeWidgetItem ` がビューに追加されている必要があります。
注:ツリーは `widget` の所有権を取得します。
関連項目: itemWidget()、removeItemWidget()、およびデリゲートクラス。
[override virtual] void QTreeWidget::setSelectionModel(QItemSelectionModel *selectionModel)
QTreeView::setSelectionModel(QItemSelectionModel *selectionModel) を再実装します。
int QTreeWidget::sortColumn() const
ウィジェットのコンテンツを並べ替える際に使用される列を返します。
sortItems()も参照してください 。
void QTreeWidget::sortItems(int column, Qt::SortOrder order)
ウィジェット内の項目を、指定されたorder に基づき、指定されたcolumn の値で並べ替えます。
sortColumn()も参照してください 。
[virtual protected] Qt::DropActions QTreeWidget::supportedDropActions() const
このビューでサポートされているドロップ操作を返します。
Qt::DropActions 、supportedDragActions 、およびdropMimeData()も参照してください 。
QTreeWidgetItem *QTreeWidget::takeTopLevelItem(int index)
ツリー内の指定されたindex にある最上位の項目を削除してそれを返します。それ以外の場合はnullptr を返します。
insertTopLevelItem()、topLevelItem()、およびtopLevelItemCount()も参照してください 。
QTreeWidgetItem *QTreeWidget::topLevelItem(int index) const
指定されたindex にある最上位のアイテムを返します。アイテムが存在しない場合は、nullptr を返します。
topLevelItemCount() およびinsertTopLevelItem()も参照してください 。
QRect QTreeWidget::visualItemRect(const QTreeWidgetItem *item) const
item における、そのアイテムがビューポート上で占める矩形を返します。
itemAt()も参照してください 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.