Spec-Zone.ru › Qt 5.15

Класс QTreeWidget

Класс QTreeWidget предоставляет представление дерева, использующее предопределённую модель дерева. Подробнее...

Заголовок: #include <QTreeWidget>
qmake: QT += widgets
Наследует: 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
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
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)
QModelIndex indexFromItem(const 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) override
virtual bool event(QEvent *e) override

Подробное описание

Класс 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(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)

topLevelItemCount : const int

Это свойство содержит количество элементов верхнего уровня

По умолчанию это свойство имеет значение 0.

Функции доступа:

int topLevelItemCount() const

См. также columnCount() и currentItem().

Документация функций-членов

QTreeWidget::QTreeWidget(QWidget *parent = nullptr)

Конструирует виджет дерева с заданным parent.

[slot] void QTreeWidget::clear()

Очищает виджет дерева, удаляя все его элементы и выделения.

Примечание: Поскольку каждый элемент удаляется из виджета дерева перед удалением, возвращаемое значение QTreeWidgetItem::treeWidget() будет недопустимым при вызове из деструктора элемента.

См. также takeTopLevelItem(), topLevelItemCount() и columnCount().

[slot] void QTreeWidget::collapseItem(const QTreeWidgetItem *item)

Закрывает item. Это приводит к тому, что дерево, содержащее дочерние элементы элемента, сворачивается.

См. также expandItem(), currentItem(), itemAt() и topLevelItem().

[signal] void QTreeWidget::currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)

Этот сигнал подается, когда изменяется текущий элемент. Текущий элемент задается параметром current, и он заменяет предыдущий текущий элемент.

См. также setCurrentItem().

[slot] void QTreeWidget::expandItem(const QTreeWidgetItem *item)

Развертывает item. Это приводит к тому, что дерево, содержащее дочерние элементы элемента, развертывается.

См. также collapseItem(), currentItem(), itemAt(), topLevelItem() и itemExpanded().

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

Этот сигнал подается, когда пользователь активирует элемент, выполнив однократный или двойной щелчок (в зависимости от платформы, т. е. от подсказки стиля QStyle::SH_ItemView_ActivateItemOnSingleClick) или нажав специальную клавишу (например, Enter).

Указанный item — это элемент, который был нажат, или nullptr , если ни один элемент не был нажат. Столбец column — это столбец элемента, который был нажат, или -1, если ни один элемент не был нажат.

[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 — это элемент, по которому был щелчок, или nullptr если ни по одному элементу не было щелчка. 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().

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

Этот сигнал излучается, когда пользователь нажимает кнопку мыши внутри виджета.

Указанный item — это элемент, по которому был щелчок, или nullptr если ни по одному элементу не было щелчка. column — столбец элемента, по которому был щелчок, или -1 если ни по одному элементу не было щелчка.

[signal] void QTreeWidget::itemSelectionChanged()

Этот сигнал излучается, когда изменяется выбор в виджете дерева. Текущий выбор можно найти с помощью selectedItems().

[slot] void QTreeWidget::scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Обеспечивает видимость item, прокручивая представление при необходимости, используя указанный hint.

См. также currentItem(), itemAt() и topLevelItem().

[virtual] QTreeWidget::~QTreeWidget()

Уничтожает виджет дерева и все его элементы.

void QTreeWidget::addTopLevelItem(QTreeWidgetItem *item)

Добавляет item в качестве элемента верхнего уровня в виджете.

Эта функция была добавлена в Qt 4.1.

См. также insertTopLevelItem().

void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem *> &items)

Добавляет список items в качестве элементов верхнего уровня в виджете.

См. также insertTopLevelItems().

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

Закрывает постоянный редактор для item в заданном column.

Эта функция не имеет эффекта, если для этой комбинации элемента и столбца не открыт постоянный редактор.

См. также openPersistentEditor() и isPersistentEditorOpen().

int QTreeWidget::currentColumn() const

Возвращает текущий столбец в виджете дерева.

Эта функция была добавлена в Qt 4.1.

См. также setCurrentItem() и columnCount().

QTreeWidgetItem *QTreeWidget::currentItem() const

Возвращает текущий элемент в виджете дерева.

См. также setCurrentItem() и currentItemChanged().

[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)

Обрабатывает данные data, предоставленные операцией перетаскивания, которая завершилась заданным action в index элемента parent.

Реализация по умолчанию возвращает true если операция перетаскивания была успешно обработана путем декодирования mime-данных и вставки их в модель; в противном случае возвращает false.

См. также supportedDropActions().

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

Начинает редактирование item в заданном column, если он редактируемый.

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

Переопределяет: QAbstractItemView::event(QEvent *event).

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(const QTreeWidgetItem *item, int column = 0) const

Возвращает QModelIndex, связанную с заданным item в заданном column.

Примечание: В версиях Qt до 5.7 эта функция принимала item без указания const.

См. также 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::isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const

Возвращает значение, указывающее, открыт ли постоянный редактор для элемента item в столбце column.

Эта функция была добавлена в Qt 5.10.

См. также openPersistentEditor() и closePersistentEditor().

QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item) const

Возвращает элемент, расположенный над заданным элементом item.

Эта функция была добавлена в Qt 4.3.

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.

QTreeWidgetItem *QTreeWidget::itemFromIndex(const QModelIndex &index) const

Возвращает указатель на QTreeWidgetItem, связанный с заданным индексом index.

См. также indexFromItem().

QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const

Возвращает виджет, отображаемый в ячейке, указанной элементом item и заданным столбцом column.

Эта функция была добавлена в Qt 4.1.

См. также setItemWidget().

QMimeData *QTreeWidget::mimeData(const QList<QTreeWidgetItem *> items) const

Возвращает объект, содержащий сериализованное описание указанных элементов items. Формат описания элементов получен из функции mimeTypes().

Если список элементов пуст, возвращается nullptr, а не сериализованный пустой список.

QStringList QTreeWidget::mimeTypes() const

Возвращает список типов MIME, которые могут использоваться для описания списка элементов виджета дерева.

См. также mimeData().

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

Открывает постоянный редактор для элемента item в заданном столбце column.

См. также closePersistentEditor() и isPersistentEditorOpen().

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

Удаляет виджет, установленный в заданном элементе item в заданном столбце column.

Эта функция была добавлена в Qt 4.3.

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::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 и подкласс QStyledItemDelegate вместо этого.

Эта функция не может быть вызвана до того, как иерархия элементов будет настроена, т.е. QTreeWidgetItem, который будет содержать widget, должен быть добавлен в представление перед установкой widget.

Примечание: Дерево принимает во владение виджет.

Эта функция была добавлена в Qt 4.1.

См. также itemWidget() и Классы делегата.

void QTreeWidget::setSelectionModel(QItemSelectionModel *selectionModel)

Реализует: QTreeView::setSelectionModel(QItemSelectionModel *selectionModel).

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 в дереве и возвращает его, в противном случае возвращает nullptr;

См. также insertTopLevelItem(), topLevelItem(), и topLevelItemCount().

QTreeWidgetItem *QTreeWidget::topLevelItem(int index) const

Возвращает элемент верхнего уровня по заданному index, или nullptr если элемент не существует.

См. также topLevelItemCount() и insertTopLevelItem().

QRect 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/qt-5.15/qtreewidget.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API