Класс QTreeWidget
Класс QTreeWidget предоставляет вид дерева, использующий предопределённую модель дерева. Подробнее...
| Заголовок: | #include <QTreeWidget> |
| qmake: | QT += widgets |
| Наследуется от: | QTreeView |
Свойства
- columnCount : int
- topLevelItemCount : const int
- 11 свойств унаследовано от QTreeView
- 16 свойств унаследовано от QAbstractItemView
- 3 свойства унаследовано от QAbstractScrollArea
- 6 свойств унаследовано от QFrame
- 58 свойств унаследовано от QWidget
- 1 свойство унаследовано от QObject
Открытые функции
| QTreeWidget(QWidget *parent = Q_NULLPTR) | |
| ~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 |
| int | indexOfTopLevelItem(QTreeWidgetItem *item) const |
| void | insertTopLevelItem(int index, QTreeWidgetItem *item) |
| void | insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items) |
| QTreeWidgetItem * | invisibleRootItem() const |
| bool | isFirstItemColumnSpanned(const QTreeWidgetItem *item) const |
| QTreeWidgetItem * | itemAbove(const QTreeWidgetItem *item) const |
| QTreeWidgetItem * | itemAt(const QPoint &p) const |
Переопределённые открытые функции
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) |
- 52 открытых функций унаследовано от QTreeView
- 57 открытых функций унаследовано от QAbstractItemView
- 20 открытых функций унаследовано от QAbstractScrollArea
- 14 открытых функций унаследовано от QFrame
- 211 открытых функций унаследовано от QWidget
- 31 открытых функций унаследовано от QObject
- 14 открытых функций унаследовано от QPaintDevice
Открытые слоты
| void | clear() |
| void | collapseItem(const QTreeWidgetItem *item) |
| void | expandItem(const QTreeWidgetItem *item) |
| void | scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible) |
- 8 public slots унаследованных от QTreeView
- 9 public slots унаследованных от QAbstractItemView
- 19 public slots унаследованных от QWidget
- 1 public slot унаследованного от QObject
Сигналы
| 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() |
- 2 сигнала унаследованных от QTreeView
- 7 сигналов унаследованных от QAbstractItemView
- 3 сигнала унаследованных от QWidget
- 2 сигнала унаследованных от QObject
Защищённые функции
| virtual bool | dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action) |
| QModelIndex | indexFromItem(QTreeWidgetItem *item, int column = 0) const |
| QTreeWidgetItem * | itemFromIndex(const QModelIndex &index) const |
| virtual QMimeData * | mimeData(const QList<QTreeWidgetItem *> items) const |
| virtual QStringList | mimeTypes() const |
| virtual Qt::DropActions | supportedDropActions() const |
Переопределённые защищённые функции
| virtual void | dropEvent(QDropEvent *event) |
| virtual bool | event(QEvent *e) |
- 29 защищённых функций унаследованных от QTreeView
- 37 защищённых функций унаследованных от QAbstractItemView
- 20 защищённых функций унаследованных от QAbstractScrollArea
- 4 защищённых функций унаследованных от QFrame
- 35 защищённых функций унаследованных от QWidget
- 9 защищённых функций унаследованных от QObject
- 1 защищённая функция унаследованная от QPaintDevice
Дополнительные унаследованные члены
- 5 статических public членов унаследованных от QWidget
- 11 статических public членов унаследованных от QObject
- 4 protected slots унаследованных от QTreeView
- 9 protected slots унаследованных от QAbstractItemView
- 1 protected slot унаследованный от QWidget
Подробное описание
Класс QTreeWidget предоставляет представление дерева, использующее предопределённую модель дерева.
Класс QTreeWidget — это вспомогательный класс, предоставляющий стандартный виджет дерева с классическим интерфейсом на основе элементов, аналогичным интерфейсу, используемому классом QListView в Qt 3. Этот класс основан на архитектуре Qt Model/View и использует модель по умолчанию для хранения элементов, каждый из которых является QTreeWidgetItem.
Разработчики, которым не нужна гибкость фреймворка Model/View, могут использовать этот класс для очень лёгкого создания простых иерархических списков. Более гибкий подход предполагает объединение QTreeView с стандартной моделью элементов. Это позволяет разделить хранение данных от их представления.
В самом простом случае виджет дерева может быть создан следующим образом:
QTreeWidget *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(1);
QList<QTreeWidgetItem *> items;
for (int i = 0; i < 10; ++i)
items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
treeWidget->insertTopLevelItems(0, items); Перед добавлением элементов в виджет дерева необходимо установить количество столбцов с помощью setColumnCount(). Это позволяет каждому элементу иметь один или несколько меток или других декораций. Количество используемых столбцов можно найти с помощью функции columnCount().
Дерево может иметь заголовок, содержащий раздел для каждого столбца в виджете. Проще всего настроить метки для каждого раздела, предоставив список строк с помощью setHeaderLabels(), но можно создать пользовательский заголовок с помощью QTreeWidgetItem и вставить его в дерево с помощью функции setHeaderItem().
Элементы в дереве могут быть отсортированы по столбцу в соответствии с предопределённым порядком сортировки. Если сортировка включена, пользователь может отсортировать элементы, щелкнув по заголовку столбца. Сортировку можно включить или выключить, вызвав setSortingEnabled(). Функция isSortingEnabled() указывает, включена ли сортировка.
| Дерево виджета стиля Windows Vista. | Дерево виджета стиля Macintosh. | Дерево виджета стиля Fusion. |
См. также QTreeWidgetItem, QTreeWidgetItemIterator, QTreeView, Программирование модели/представления и Пример редактора настроек.
Документация свойств
columnCount : int
Это свойство содержит количество столбцов, отображаемых в виджете дерева.
По умолчанию это свойство имеет значение 1.
Функции доступа:
| int | columnCount() const |
| void | setColumnCount(int columns) |
topLevelItemCount : const int
Это свойство содержит количество элементов верхнего уровня.
По умолчанию это свойство имеет значение 0.
Функции доступа:
| int | topLevelItemCount() const |
См. также columnCount() и currentItem().
Документация по членам-функциям
QTreeWidget::QTreeWidget(QWidget *parent = Q_NULLPTR)
Создает виджет дерева с заданным parent.
QTreeWidget::~QTreeWidget()
Удаляет виджет дерева и все его элементы.
void QTreeWidget::addTopLevelItem(QTreeWidgetItem *item)
Добавляет item как элемент верхнего уровня в виджет.
Эта функция была добавлена в Qt 4.1.
См. также 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)
Закрывает постоянный редактор для item в заданном column.
Эта функция не имеет эффекта, если для этой комбинации элемента и столбца нет открытого постоянного редактора.
См. также openPersistentEditor().
[slot] void QTreeWidget::collapseItem(const QTreeWidgetItem *item)
Закрывает item. Это приводит к тому, что дерево, содержащее дочерние элементы элемента, сворачивается.
См. также expandItem(), currentItem(), itemAt() и topLevelItem().
int QTreeWidget::currentColumn() const
Возвращает текущий столбец в виджете дерева.
Эта функция была добавлена в Qt 4.1.
См. также setCurrentItem() и columnCount().
QTreeWidgetItem *QTreeWidget::currentItem() const
Возвращает текущий элемент в виджете дерева.
См. также setCurrentItem() и currentItemChanged().
[signal] void QTreeWidget::currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
Этот сигнал излучается, когда текущий элемент изменяется. Текущий элемент задается current, и это заменяет предыдущий текущий элемент.
См. также setCurrentItem().
[virtual protected] void QTreeWidget::dropEvent(QDropEvent *event)
Переопределено из QWidget::dropEvent().
[virtual protected] bool QTreeWidget::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action)
Обрабатывает data, предоставленное операцией перетаскивания и помещения, которая завершилась заданным action в index в заданном элементе parent.
Реализация по умолчанию возвращает true если сброс успешно обработан путем декодирования данных MIME и вставки их в модель; в противном случае возвращает false.
См. также supportedDropActions().
void QTreeWidget::editItem(QTreeWidgetItem *item, int column = 0)
Начинает редактирование item в заданном column, если он редактируемый.
[virtual protected] bool QTreeWidget::event(QEvent *e)
Переопределено из QObject::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().
[protected] QModelIndex QTreeWidget::indexFromItem(QTreeWidgetItem *item, int column = 0) const
Возвращает QModelIndex, связанную с заданным item в заданном column.
См. также itemFromIndex() и topLevelItem().
int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item) const
Возвращает индекс заданного верхнего уровня item или -1, если элемент не найден.
См. также sortItems() и topLevelItemCount().
void QTreeWidget::insertTopLevelItem(int index, QTreeWidgetItem *item)
Вставляет item в позицию index на верхнем уровне в представлении.
Если элемент уже был вставлен где-то еще, он не будет вставлен.
См. также addTopLevelItem() и columnCount().
void QTreeWidget::insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)
Вставляет список items в позицию index на верхнем уровне в представлении.
Элементы, которые уже были вставлены где-то еще, не будут вставлены.
Эта функция была введена в Qt 4.1.
См. также addTopLevelItems().
QTreeWidgetItem *QTreeWidget::invisibleRootItem() const
Возвращает невидимый корневой элемент виджета дерева.
Невидимый корневой элемент обеспечивает доступ к элементам верхнего уровня виджета дерева через API QTreeWidgetItem, что позволяет создавать функции, которые могут обрабатывать элементы верхнего уровня и их потомков одинаково; например, рекурсивные функции.
Эта функция была введена в Qt 4.2.
bool QTreeWidget::isFirstItemColumnSpanned(const QTreeWidgetItem *item) const
Возвращает true если заданный item настроен на отображение только одного раздела по всем столбцам; в противном случае возвращает false.
Эта функция была введена в Qt 4.3.
См. также setFirstItemColumnSpanned().
QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item) const
Возвращает элемент, расположенный над заданным item.
Эта функция была введена в Qt 4.3.
[signal] void QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)
Этот сигнал излучается, когда пользователь активирует элемент одиночным или двойным щелчком (в зависимости от платформы, т.е. от подсказки стиля QStyle::SH_ItemView_ActivateItemOnSingleClick) или нажатием специальной клавиши (например, Enter).
Указанный item — это элемент, который был нажат, или 0, если никакой элемент не был нажат. 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.
Эта функция была введена в Qt 4.3.
[signal] void QTreeWidget::itemChanged(QTreeWidgetItem *item, int column)
Этот сигнал излучается, когда содержимое column в указанном item изменяется.
[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 — это элемент, который был нажат, или 0, если никакой элемент не был нажат. column — это столбец элемента, который был нажат. Если никакой элемент не был дважды нажат, сигнал не будет излучен.
[signal] void QTreeWidget::itemEntered(QTreeWidgetItem *item, int column)
Этот сигнал излучается, когда курсор мыши входит в item над указанным column. Для работы этой функции требуется отслеживание нажатий мыши в QTreeWidget.
[signal] void QTreeWidget::itemExpanded(QTreeWidgetItem *item)
Этот сигнал излучается, когда указанный item развернут, так что все его дочерние элементы отображаются.
Примечание: Этот сигнал не будет излучен, если элемент изменит свое состояние при вызове expandAll().
См. также setItemExpanded(), QTreeWidgetItem::isExpanded(), itemCollapsed() и expandItem().
[protected] QTreeWidgetItem *QTreeWidget::itemFromIndex(const QModelIndex &index) const
Возвращает указатель на QTreeWidgetItem, связанный с заданным index.
См. также indexFromItem().
END_OF_DOCUMENT_MARKER
[signal] void QTreeWidget::itemPressed(QTreeWidgetItem *item, int column)
Этот сигнал испускается, когда пользователь нажимает кнопку мыши внутри виджета.
Указанный элемент item — это элемент, на который был нажат щелчок, или 0, если ни один элемент не был нажат. Столбец column — это столбец элемента, на который был нажат щелчок, или -1, если ни один элемент не был нажат.
[signal] void QTreeWidget::itemSelectionChanged()
Этот сигнал испускается, когда изменяется выделение в виджете дерева. Текущее выделение можно найти с помощью selectedItems().
QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const
Возвращает виджет, отображаемый в ячейке, заданной элементом item и заданным столбцом column.
Эта функция была введена в Qt 4.1.
См. также setItemWidget().
[virtual protected] QMimeData *QTreeWidget::mimeData(const QList<QTreeWidgetItem *> items) const
Возвращает объект, содержащий сериализованное описание указанных элементов items. Формат, используемый для описания элементов, получается из функции mimeTypes().
Если список элементов пуст, возвращается 0, а не сериализованный пустой список.
[virtual protected] QStringList QTreeWidget::mimeTypes() const
Возвращает список типов MIME, которые могут быть использованы для описания списка элементов виджета дерева.
См. также mimeData().
void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column = 0)
Открывает постоянный редактор для элемента item в заданном столбце column.
См. также closePersistentEditor().
void QTreeWidget::removeItemWidget(QTreeWidgetItem *item, int column)
Удаляет виджет, установленный в заданном элементе item в заданном столбце column.
Эта функция была введена в Qt 4.3.
[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.
Эта функция была введена в Qt 4.1.
См. также currentItem().
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column, QItemSelectionModel::SelectionFlags command)
Устанавливает текущий элемент item в виджете дерева и текущий столбец в column, используя заданную команду command.
Эта функция была введена в Qt 4.4.
См. также currentItem().
void QTreeWidget::setFirstItemColumnSpanned(const QTreeWidgetItem *item, bool span)
Устанавливает заданный элемент item для отображения только одного раздела для всех столбцов, если span равно true; в противном случае элемент будет отображать по одному разделу на столбец.
Эта функция была введена в Qt 4.3.
См. также isFirstItemColumnSpanned().
void QTreeWidget::setHeaderItem(QTreeWidgetItem *item)
Устанавливает заголовок item для виджета дерева. Метка каждого столбца в заголовке предоставляется соответствующей меткой в элементе.
Виджет дерева принимает владение элементом.
См. также headerItem() и setHeaderLabels().
void QTreeWidget::setHeaderLabel(const QString &label)
То же самое, что и setHeaderLabels(QStringList(label)).
Эта функция была введена в Qt 4.2.
void QTreeWidget::setHeaderLabels(const QStringList &labels)
Добавляет столбец в заголовок для каждого элемента в списке labels и устанавливает метку для каждого столбца.
Обратите внимание, что setHeaderLabels() не удалит существующие столбцы.
См. также setHeaderItem() и setHeaderLabel().
void QTreeWidget::setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget)
Устанавливает данный widget для отображения в ячейке, заданной данным item и column.
Свойство autoFillBackground данного widget должно быть установлено в значение true, иначе фон виджета будет прозрачным, что отобразит как данные модели, так и элемент виджета дерева.
Эта функция должна использоваться только для отображения статического содержимого вместо элемента виджета дерева. Если вы хотите отобразить пользовательское динамическое содержимое или реализовать пользовательский виджет редактора, используйте QTreeView и подкласс QItemDelegate вместо этого.
Эта функция не может быть вызвана до того, как иерархия элементов будет настроена, т. е. QTreeWidgetItem, который будет содержать widget, должен быть добавлен в представление до того, как widget будет установлен.
Примечание: Дерево принимает владение виджетом.
Эта функция была введена в Qt 4.1.
См. также itemWidget() и Классы делегатов.
[virtual] void QTreeWidget::setSelectionModel(QItemSelectionModel *selectionModel)
Переопределено из QAbstractItemView::setSelectionModel().
int QTreeWidget::sortColumn() const
Возвращает столбец, используемый для сортировки содержимого виджета.
Эта функция была введена в Qt 4.1.
См. также 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 в дереве и возвращает его, в противном случае возвращает 0;
См. также insertTopLevelItem(), topLevelItem() и topLevelItemCount().
QTreeWidgetItem *QTreeWidget::topLevelItem(int index) const
Возвращает элемент верхнего уровня по заданному index или 0, если элемент не существует.
См. также topLevelItemCount() и insertTopLevelItem().
END_OF_DOCUMENT_MARKERQRect QTreeWidget::visualItemRect(const QTreeWidgetItem *item) const
Возвращает прямоугольник на области просмотра, занимаемый элементом в item.
См. также itemAt().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qtreewidget.html