QTreeWidget Class
QTreeWidgetクラスは、定義済みのツリーモデルを使用するツリービューを提供します。詳細...
Header: | #include <QTreeWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | QTreeView |
プロパティ
- columnCount : int
- topLevelItemCount : const 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) |
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 |
再実装された保護された関数
詳しい説明
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() 関数は、ソートが有効かどうかを示す。
QTreeWidgetItem 、QTreeWidgetItemIterator 、QTreeView 、モデル/ビュー・プログラミングも参照してください 。
プロパティ Documentation
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)
指定された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)
指定されたaction で終了したドラッグ&ドロップ操作によって供給されたdata を、指定されたparent アイテムのindex で処理します。
デフォルトの実装では、mimeデータをデコードしてモデルに挿入することでドロップが正常に処理された場合はtrue
を返し、そうでない場合はfalse
を返します。
それ以外の場合は supportedDropActions を返します。
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
指定された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)
ビューのトップ・レベルの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
treewidgetアイテムのリストを記述するために使用できるMIMEタイプのリストを返します。
mimeData()も参照してください 。
void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column = 0)
与えられたcolumn のitem の永続エディタを開く。
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)
指定されたitem およびcolumn で指定されたセルに表示される、指定されたwidget を設定します。
指定されたwidget のautoFillBackground プロパティは、true に設定されなければなりません。そうでない場合、ウィジェットの背景は透明になり、モデルデータとツリーウィジェットアイテムの両方が表示されます。
この関数は、ツリーウィジェットアイテムの代わりに静的コンテンツを表示する場合にのみ使用してください。カスタム動的コンテンツを表示したり、カスタムエディタウィジェットを実装したい場合は、代わりにQTreeView とQStyledItemDelegate のサブクラスを使用してください。
すなわち、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)
指定されたorder のウィジェット内の項目を、指定されたcolumn の値でソートします。
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()も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。