このページでは

QTreeWidget Class

QTreeWidget クラスは、あらかじめ定義されたツリーモデルを使用したツリービューを提供します。詳細...

ヘッダー: #include <QTreeWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承元: QTreeView

プロパティ

パブリック関数

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

再実装された保護関数

virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *e) override

詳細な説明

内容をツリー形式で表示するディレクトリ

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.