Шаг 150.
Библиотека PyQt5.
Списки и таблицы. Представления. Иерархический список

    На этом шаге мы рассмотрим назначение, формат конструктора, пример и основные методы класса QTreeView.

    Класс QTreeView реализует иерархический список (рисунок 1). Иерархия наследования:

  (QObject, QPaintDevice) - QWidget - QFrame - QAbstractScrollArea -
      QAbstractItemView - QTreeView


Рис.1. Компонент QTreeView

    Текст приложения:

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets, QtGui
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("QTreeView")

tv = QtWidgets.QTreeView()
sti = QtGui.QStandardItemModel(parent = window)
rootitem1 = QtGui.QStandardItem('QAbstractItemView')
rootitem2 = QtGui.QStandardItem('Базовый класс')
item1 = QtGui.QStandardItem('QListView')
item2 = QtGui.QStandardItem('Список')
rootitem1.appendRow([item1, item2])
item1 = QtGui.QStandardItem('QTableView')
item2 = QtGui.QStandardItem('Таблица')
rootitem1.appendRow([item1, item2])
item1 = QtGui.QStandardItem('QTreeView')
item2 = QtGui.QStandardItem('Иерархический список')
rootitem1.appendRow([item1, item2])
sti.appendRow([rootitem1, rootitem2])

rootitem1 = QtGui.QStandardItem('QAbstractItemModel')
rootitem2 = QtGui.QStandardItem('Базовый класс')
item1 = QtGui.QStandardItem('QStandardItemModel')
item2 = QtGui.QStandardItem('Основная модель')
rootitem1.appendRow([item1, item2])
sti.appendRow([rootitem1, rootitem2])

sti.setHorizontalHeaderLabels(['Класс', 'Описание'])
tv.setModel(sti)
tv.setColumnWidth(0, 170)

vbox = QtWidgets.QVBoxLayout()
vbox.addWidget(tv)
window.setLayout(vbox)
window.resize(350,200)
window.show()
sys.exit(app.exec_())
Архив с файлом можно взять здесь.

    Формат конструктора класса QTreeView:

  <Объект> = QTreeView([parent=<Родитель>]

    Класс QTreeView наследует все методы и сигналы класса QAbstractItemView (см. 146 шаг) и дополнительно поддерживает следующие методы (здесь приведены только основные - за полным их списком обращайтесь к странице https://doc.qt.io/qt-5/qtreeview.html):

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг