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)
int sortColumn() const
void sortItems(int column, Qt::SortOrder order)
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()

保護された関数

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 クラスで使われているような、古典的なアイテムベースのインターフェイスを持つ標準的なツリーウィジェットを提供する便利なクラスです。QTreeWidgetItemこのクラスは Qt の Model/View アーキテクチャに基づき、デフォルトのモデルを使用してアイテムを保持します。

Model/Viewフレームワークの柔軟性を必要としない開発者は、このクラスを使って非常に簡単に単純な階層リストを作成することができます。より柔軟なアプローチとしては、QTreeView を標準の項目モデルと組み合わせる方法があります。これにより、データの保存とその表現を分離することができます。

最も単純な形として、ツリーウィジェットは次のように構築できます:

QTreeWidget *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(1);
QList<QTreeWidgetItem *> items;
for (int i = 0; i < 10; ++i)
    items.append(new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr), QStringList(QString("item: %1").arg(i))));
treeWidget->insertTopLevelItems(0, items);

アイテムをツリー・ウィジェットに追加する前に、setColumnCount() で列の数を設定する必要があります。これにより、各アイテムは1つ以上のラベルやその他の装飾を持つことができます。使用中の列数はcolumnCount() 関数で確認できます。

ツリーには、ウィジェットの各カラムのセクションを含むヘッダを持つことができます。各セクションのラベルは、setHeaderLabels() で文字列のリストを指定して設定するのが最も簡単ですが、QTreeWidgetItem でカスタムヘッダーを作成し、setHeaderItem() 関数でツリーに挿入することもできます。

ツリー内の項目は、定義済みのソート順に従って列ごとにソートすることができる。ソートが有効になっている場合、ユーザーは列のヘッダーをクリックすることで、項目をソートすることができます。ソートは、setSortingEnabled() を呼び出すことで、有効にも無効にもできる。isSortingEnabled() 関数は、ソートが有効かどうかを示す。

QTreeWidgetItemQTreeWidgetItemIteratorQTreeViewモデル/ビュー・プログラミングも参照してください

プロパティ・ドキュメント

columnCount : int

このプロパティは、ツリーウィジェットに表示される列の数を保持します。

デフォルトでは、このプロパティの値は1です。

アクセス関数:

int columnCount() const
void setColumnCount(int columns)

[read-only] topLevelItemCount : const 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)

指定されたcolumnitem の永続エディタを閉じます。

この関数は、この項目と列の組み合わせに対して永続エディタを開いていない場合、何の効果も持ちません。

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)

指定されたaction で終了したドラッグ&ドロップ操作によって与えられたdata を、指定されたparent 項目のindex で処理します。

デフォルトの実装では、MIMEデータをデコードしてモデルに挿入することでドロップが正常に処理された場合はtrue を返し、そうでない場合はfalse を返します。

supportedDropActions()も参照してください

void QTreeWidget::editItem(QTreeWidgetItem *item, int column = 0)

与えられたcolumnitem が編集可能であれば編集を開始する。

[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

与えられたcolumn の中で、与えられたflags を使って、与えられたtext にマッチする項目のリストを返す。

QTreeWidgetItem *QTreeWidget::headerItem() const

ツリーウィジェットのヘッダーに使用されている項目を返します。

setHeaderItem()も参照してください

QModelIndex QTreeWidget::indexFromItem(const QTreeWidgetItem *item, int column = 0) const

与えられたcolumn 内の、与えられたitem に関連付けられたQModelIndex を返します。

注意: Qt 5.7 より前のバージョンでは、この関数はconst item 以外の値を取っていました。

itemFromIndex() およびtopLevelItem()も参照してください

int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item) const

指定されたトップレベルitem のインデックスを返す。

sortItems() およびtopLevelItemCount()も参照

void QTreeWidget::insertTopLevelItem(int index, QTreeWidgetItem *item)

ビューの最上位レベルのindexitem を挿入します。

その項目がすでに他の場所に挿入されている場合は、挿入されません。

addTopLevelItem() およびcolumnCount()も参照してください

void QTreeWidget::insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)

indexitems のリストをビューのトップレベルに挿入します。

他の場所に既に挿入されている項目は挿入されません。

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)

このシグナルは、指定されたitemcolumn の内容が変更されたときに発せられる。

[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 はクリックされたアイテム、アイテムがクリックされなかった場合はnullptrcolumn は、クリックされた項目の列です。ダブルクリックされた項目がない場合、シグナルは発せられません。

[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

treewidgetアイテムのリストを記述するために使用できるMIMEタイプのリストを返します。

mimeData()も参照してください

void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column = 0)

指定されたcolumnitem の永続エディタを開く。

closePersistentEditor() およびisPersistentEditorOpen()も参照

void QTreeWidget::removeItemWidget(QTreeWidgetItem *item, int column)

指定されたcolumn の指定されたitem で設定されたウィジェットを削除します。

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)

与えられたitemcolumn で指定されたセルに表示されるように、与えられたwidget を設定する。

widget autoFillBackground さもなければ、ウィジェットの背景は透明になり、モデルデータとツリーウィジェットアイテムの両方が表示されます。

この関数は、ツリーウィジェットアイテムの代わりに静的コンテンツを表示する場合にのみ使用してください。カスタム動的コンテンツを表示したり、カスタムエディタウィジェットを実装したい場合は、代わりにQTreeViewQStyledItemDelegate のサブクラスを使用してください。

つまり、widget が設定される前に、widget を保持するQTreeWidgetItem がビューに追加されていなければなりません。

注: ツリーはwidget の所有権を持ちます。

itemWidget(),removeItemWidget(),Delegate Classesも参照してください

[override virtual] void QTreeWidget::setSelectionModel(QItemSelectionModel *selectionModel)

再実装:QTreeView::setSelectionModel(QItemSelectionModel *selectionModel)。

int QTreeWidget::sortColumn() const

ウィジェットの内容をソートするために使われるカラムを返します。

sortItems()も参照してください

void QTreeWidget::sortItems(int column, Qt::SortOrder order)

指定されたcolumn の値で、指定されたorder のウィジェット内の項目をソートする。

sortColumn()も参照してください

[virtual protected] Qt::DropActions QTreeWidget::supportedDropActions() const

このビューでサポートされているドロップアクションを返します。

Qt::DropActionsも参照ください

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()も参照

© 2025 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.