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 클래스가 사용하는 것과 유사한 고전적인 항목 기반 인터페이스를 가진 표준 트리 위젯을 제공하는 편의 클래스입니다. 이 클래스는 Qt의 모델/뷰 아키텍처를 기반으로 하며, 기본 모델을 사용하여 각각 QTreeWidgetItem.

모델/뷰 프레임워크의 유연성이 필요하지 않은 개발자는 이 클래스를 사용하여 간단한 계층적 목록을 매우 쉽게 만들 수 있습니다. 보다 유연한 접근 방식은 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()로 열의 수를 설정해야 합니다. 이렇게 하면 각 항목에 하나 이상의 레이블이나 기타 장식을 추가할 수 있습니다. 사용 중인 열의 수는 columnCount() 함수를 사용하여 확인할 수 있습니다.

트리에는 위젯의 각 열에 대한 섹션이 포함된 헤더를 가질 수 있습니다. setHeaderLabels ()로 문자열 목록을 제공하여 각 섹션의 레이블을 설정하는 것이 가장 쉽지만, QTreeWidgetItem 으로 사용자 정의 헤더를 만들고 setHeaderItem() 함수를 사용하여 트리에 삽입할 수도 있습니다.

트리의 항목은 미리 정의된 정렬 순서에 따라 열별로 정렬할 수 있습니다. 정렬이 활성화된 경우 사용자는 열 헤더를 클릭하여 항목을 정렬할 수 있습니다. setSortingEnabled ()를 호출하여 정렬을 사용하거나 사용하지 않도록 설정할 수 있습니다. isSortingEnabled () 함수는 정렬이 활성화되어 있는지 여부를 나타냅니다.

QTreeWidgetItem, QTreeWidgetItemIterator, QTreeView모델/보기 프로그래밍을참조하세요 .

속성 문서

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 * 이벤트).

[virtual protected] bool QTreeWidget::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action)

지정된 parent 항목의 index 에서 지정된 action 로 끝나는 드래그 앤 드롭 작업으로 제공된 data 을 처리합니다.

기본 구현은 드래그 앤 드롭이 성공적으로 처리되어 마임 데이터를 디코딩하고 모델에 삽입하면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

supportedDropActions()도 참조하세요 .

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

주어진 column 에서 item 을 편집할 수 있는 경우 편집을 시작합니다.

[override virtual protected] bool QTreeWidget::event(QEvent *e)

다시 구현합니다: QAbstractItemView::event(QEvent * 이벤트).

[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 을 반환합니다.

참고: 5.7 이전 Qt 버전에서, 이 함수는const item 이 아닌 것을 취했습니다.

itemFromIndex() 및 topLevelItem()도 참조하십시오 .

int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item) const

지정된 최상위 수준 item 의 인덱스를 반환하거나 항목을 찾을 수 없는 경우 -1을 반환합니다.

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 은 클릭한 항목이며, 클릭한 항목이 없는 경우 nullptr 입니다. column 은 클릭한 항목의 열입니다. 두 번 클릭한 항목이 없으면 신호가 발생하지 않습니다.

[signal] void QTreeWidget::itemEntered(QTreeWidgetItem *item, int column)

item 이 신호는 마우스 커서가 지정된 column. 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)

주어진 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 을 사용하여 트리 위젯의 현재 itemcolumn 으로 설정합니다.

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 을 표시하도록 설정합니다.

지정된 widgetautoFillBackground 속성을 true로 설정해야 하며, 그렇지 않으면 위젯의 배경이 투명하게 표시되어 모델 데이터와 트리 위젯 항목이 모두 표시됩니다.

이 함수는 트리 위젯 항목 대신 정적 콘텐츠를 표시할 때만 사용해야 합니다. 사용자 정의 동적 콘텐츠를 표시하거나 사용자 정의 편집기 위젯을 구현하려면 QTreeView 및 하위 클래스 QStyledItemDelegate 를 대신 사용하세요.

이 함수는 항목 계층이 설정되기 전에는 호출할 수 없습니다. 즉, widget 을 보유할 QTreeWidgetItemwidget 설정되기 전에 뷰에 추가되어야 합니다.

참고: 트리는 widget 의 소유권을 갖습니다.

itemWidget(), removeItemWidget() 및 델리게이트 클래스도참조하십시오 .

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

다시 구현합니다: QTreeView::setSelectionModel(QItemSelectionModel *셀렉션모델).

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()도 참조하세요 .

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