Главная страница

ээдд. Прохоренок_Н_А__Дронов_В_А_Python_3_и_PyQt_5_Разработка_приложен. Николай Прохоренок Владимир Дронов


Скачать 7.92 Mb.
НазваниеНиколай Прохоренок Владимир Дронов
Дата05.05.2023
Размер7.92 Mb.
Формат файлаpdf
Имя файлаПрохоренок_Н_А__Дронов_В_А_Python_3_и_PyQt_5_Разработка_приложен.pdf
ТипДокументы
#1111379
страница49 из 83
1   ...   45   46   47   48   49   50   51   52   ...   83
— переключает элемент с заданным индексом (экземпляр класса
QModelIndex
) в режим редактирования, не делая его выделенным. Метод является сло- том;
 setEditTriggers(<Режим>)
— задает действие, при котором элемент переключается в режим редактирования. В качестве параметра указывается комбинация следующих атрибутов класса
QAbstractItemView
:

NoEditTriggers

0
— элемент не поддерживает редактирование;

CurrentChanged

1
— при выделении элемента;

DoubleClicked

2
— при двойном щелчке мышью;

Глава 22. Списки и таблицы
515

SelectedClicked

4
— при щелчке мышью на уже выделенном элементе;

EditKeyPressed

8
— при нажатии клавиши ;

AnyKeyPressed

16
— при нажатии любой символьной клавиши;

AllEditTriggers

31
— при любом упомянутом здесь действии;
 setIconSize()
— задает размер значков;
 setTextElideMode(<Режим>)
— задает режим обрезки текста, если он не помещается в отведенную область (в месте пропуска выводится троеточие). Могут быть указаны следующие атрибуты класса
QtCore.Qt
:

ElideLeft

0
— текст обрезается слева;

ElideRight

1
— текст обрезается справа;

ElideMiddle

2
— текст вырезается посередине;

ElideNone

3
— текст не обрезается;
 setTabKeyNavigation(<Флаг>)
— если в качестве параметра указано значение
True
, меж- ду элементами можно перемещаться с помощью клавиш и +;
 scrollTo([, hint=EnsureVisible])
— прокручивает представление таким образом, чтобы элемент, на который ссылается индекс (экземпляр класса
QModelIndex
), был видим. В параметре hint указываются следующие атрибуты класса
QAbstractItemView
:

EnsureVisible

0
— элемент должен находиться в области видимости;

PositionAtTop

1
элемент должен находиться в верхней части;

PositionAtBottom

2
— элемент должен находиться в нижней части;

PositionAtCenter

3
— элемент должен находиться в центре;
 scrollToTop()
— прокручивает представление в самое начало. Метод является слотом;
 scrollToBottom()
— прокручивает представление в самый конец. Метод является сло- том;
 setDragEnabled(<Флаг>)
— если в качестве параметра указано значение
True
, перетаски- вание элементов разрешено;
 setDragDropMode(<Режим>)
— задает режим работы drag & drop. В качестве параметра указываются следующие атрибуты класса
QAbstractItemView
:

NoDragDrop

0
— drag & drop не поддерживается;

DragOnly

1
— поддерживается только перетаскивание;

DropOnly

2
— поддерживается только сбрасывание;

DragDrop

3
— поддерживается перетаскивание и сбрасывание;

InternalMove

4
— допускается лишь перетаскивание внутри компонента;
 setDropIndicatorShown(<Флаг>)
— если в качестве параметра указано значение
True
, позиция возможного сброса элемента будет подсвечена;
 setAutoScroll(<Флаг>)
— если в качестве параметра указано значение
True
, при пере- таскивании пункта будет производиться автоматическая прокрутка;
 setAutoScrollMargin(<Отступ>)
— задает расстояние от края области, при достижении которого будет производиться автоматическая прокрутка области;

516
Часть II. Библиотека PyQt 5
 update()
— обновляет элемент с заданным индексом. Метод является сло- том.
Класс
QAbstractItemView поддерживает следующие сигналы:
 activated()
— генерируется при активизации элемента путем одинарного или двойного щелчка мышью или нажатия клавиши . В обработчике через пара- метр доступен индекс активного элемента;
 pressed()
— генерируется при нажатии кнопки мыши над элементом.
Внутри обработчика через параметр доступен индекс элемента;
 clicked()
— генерируется при щелчке мышью над элементом. Параметр хранит индекс элемента;
 doubleClicked()
— генерируется при двойном щелчке мышью над эле- ментом. Параметр хранит индекс элемента;
 entered()
— генерируется при вхождении указателя мыши в область эле- мента. Чтобы сигнал сработал, необходимо включить обработку перемещения указателя вызовом метода setMouseTracking()
, унаследованного от класса
QWidget
. Внутри обра- ботчика через параметр доступен индекс элемента;
 viewportEntered
— генерируется при вхождении указателя мыши в область компонента.
Чтобы сигнал сработал, необходимо включить обработку перемещения указателя с по- мощью метода setMouseTracking()
, унаследованного от класса
QWidget
22.5.2. Простой список
Класс
QListView реализует простой список с возможностью выбора как одного, так и не- скольких пунктов. Кроме текста, в любом пункте такого списка может присутствовать зна- чок (рис. 22.1). Иерархия наследования выглядит так:
(QObject, QPaintDevice) — QWidget — QFrame — QAbstractScrollArea —
QAbstractItemView — QListView
Рис. 22.1. Компонент
QListView
Формат конструктора класса
QListView
:
<Объект> = QListView([parent=<Родитель>])
Типичный пример использования списка приведен в листинге 22.3.
Листинг 22.3. Простой список QListView lv = QtWidgets.QListView() sti = QtGui.QStandardItemModel(parent = window) lst = ['Perl', 'PHP', 'Python', 'Ruby']

Глава 22. Списки и таблицы
517 for row in range(0, 4): if row == 2: iconfile = 'python.png' else: iconfile = 'icon.png' item = QtGui.QStandardItem(QtGui.QIcon(iconfile), lst[row]) sti.appendRow(item) lv.setModel(sti)
Класс
QListView наследует все методы и сигналы из класса
QAbstractItemView
(см. разд. 22.5.1), включая методы setModel()
, model()
и selectedIndexes()
. Помимо этого, он дополнительно определяет следующие методы (здесь приведены только основные — полный их список можно найти на странице https://doc.qt.io/qt-5/qlistview.html):
 setModelColumn(<Индекс>)
— задает индекс отображаемого столбца в табличной модели
(по умолчанию отображается первый столбец с индексом
0
);
 setViewMode(<Режим>)
— задает режим отображения элементов. В качестве параметра указываются следующие атрибуты класса
QListView
:

ListMode

0
— элементы размещаются сверху вниз, а значки имеют маленькие раз- меры;

IconMode

1
— элементы размещаются слева направо, а значки имеют большие раз- меры. Элементы можно свободно перемещать мышью;
 setMovement(<Режим>)
— задает режим перемещения элементов. В качестве параметра указываются следующие атрибуты класса
QListView
:

Static

0
— пользователь не может перемещать элементы;

Free

1
— свободное перемещение;

Snap

2
— перемещаемые элементы автоматически выравниваются по сетке, разме- ры которой задаются методом setGridSize()
;
 setGridSize()
— задает размеры сетки, по которой выравниваются перемещае- мые элементы;
 setResizeMode(<Режим>)
— задает режим расположения элементов при изменении раз- мера списка. В качестве параметра указываются следующие атрибуты класса
QListView
:

Fixed

0
— элементы остаются в том же положении;

Adjust

1
— положение элементов изменяется при изменении размеров;
 setFlow(<Режим>)
— задает порядок вывода элементов. В качестве параметра указыва- ются следующие атрибуты класса
QListView
:

LeftToRight

0
— слева направо;

TopToBottom

1
— сверху вниз;
 setWrapping(<Флаг>)
— если в качестве параметра указано значение
False
, перенос эле- ментов на новую строку (если они не помещаются в ширину области) запрещен;
 setWordWrap(<Флаг>)
— если в качестве параметра указано значение
True
, текст элемен- тов при необходимости будет переноситься по строкам;
 setLayoutMode(<Режим>)
— задает режим размещения элементов. В качестве параметра указываются следующие атрибуты класса
QListView
:

518
Часть II. Библиотека PyQt 5

SinglePass

0
— элементы размещаются все сразу. Если список слишком большой, то окно останется заблокированным, пока все элементы не будут отображены;

Batched

1
— элементы размещаются блоками. Размер такого блока задается мето- дом setBatchSize(<Количество>)
;
 setUniformItemSizes(<Флаг>)
— если в качестве параметра указано значение
True
, все элементы будут иметь одинаковый размер (по умолчанию они имеют разные размеры, зависящие от содержимого);
 setSpacing(<Отступ>)
— задает отступ вокруг элемента;
 setSelectionRectVisible(<Флаг>)
— если в качестве параметра указано значение
True
, будет отображаться вспомогательная рамка, показывающая область выделения. Метод доступен только при использовании режима множественного выделения;
 setRowHidden(<Индекс>, <Флаг>)
— если во втором параметре указано значение
True
, строка с индексом, указанным в первом параметре, будет скрыта. Значение
False ото- бражает строку;
 isRowHidden(<Индекс>)
— возвращает значение
True
, если строка с указанным индексом скрыта, и
False
— в противном случае.
Класс
QListView также поддерживает сигнал indexesMoved(<Элементы>)
, генерируемый при перемещении элементов. Внутри обработчика через параметр доступен список перемещае- мых элементов в виде экземпляров класса
QModelIndex
22.5.3. Таблица
Класс
QTableView реализует таблицу (рис. 22.2). Иерархия наследования выглядит так:
(QObject, QPaintDevice) — QWidget — QFrame — QAbstractScrollArea —
QAbstractItemView — QTableView
Рис. 22.2. Компонент
QTableView
Формат конструктора класса
QTableView
:
<Объект> = QTableView([parent=<Родитель>])
Класс
QTableView наследует все методы и сигналы из класса
QAbstractItemView
(см. разд. 22.5.1) и дополнительно поддерживает следующие методы (здесь приведены только основные — полный их список можно найти на странице https://doc.qt.io/qt-5/qtableview.html):
 selectRow(<Индекс>)
— выделяет строку с указанным индексом. Метод является слотом;
 selectColumn(<Индекс>)
— выделяет столбец с указанным индексом. Метод является слотом;

Глава 22. Списки и таблицы
519
 horizontalHeader()
— возвращает ссылку на горизонтальный заголовок, представлен- ный экземпляром класса
QHeaderView
;
 verticalHeader()
— возвращает ссылку на вертикальный заголовок, представленный экземпляром класса
QHeaderView
. Например, вывести таблицу без заголовков можно сле- дующим образом: view.horizontalHeader().hide() view.verticalHeader().hide()
 setRowHeight(<Индекс>, <Высота>)
— задает высоту строки с указанным в первом пара- метре индексом;
 rowHeight(<Индекс>)
— возвращает высоту строки;
 setColumnWidth(<Индекс>, <Ширина>)
— задает ширину столбца с указанным в первом параметре индексом;
 columnWidth(<Индекс>)
— возвращает ширину столбца;
 resizeRowToContents(<Индекс строки>)
— изменяет размер указанной строки таким об- разом, чтобы в нее поместилось все содержимое. Метод является слотом;
 resizeRowsToContents()
— изменяет размер всех строк таким образом, чтобы в них по- местилось все содержимое. Метод является слотом;
 resizeColumnToContents(<Индекс столбца>)
— изменяет размер указанного столбца та- ким образом, чтобы в него поместилось все содержимое. Метод является слотом;
 resizeColumnsToContents()
— изменяет размер всех столбцов таким образом, чтобы в них поместилось содержимое. Метод является слотом;
 setSpan(<Индекс строки>, <Индекс столбца>, <Количество строк>, <Количество столб- цов>)
— растягивает элемент с указанными в первых двух параметрах индексами на за- данное количество строк и столбцов, производя как бы объединение ячеек таблицы;
 rowSpan(<Индекс строки>, <Индекс столбца>)
— возвращает количество ячеек в строке, которое занимает элемент с указанными индексами;
 columnSpan(<Индекс строки>, <Индекс столбца>)
— возвращает количество ячеек в столбце, которое занимает элемент с указанными индексами;
 clearSpans()
— отменяет все объединения ячеек;
 setRowHidden(<Индекс>, <Флаг>)
— если во втором параметре указано значение
True
, то строка с индексом, указанным в первом параметре, будет скрыта. Значение
False ото- бражает строку;
 hideRow(<Индекс>)
— скрывает строку с указанным индексом. Метод является слотом;
 showRow(<Индекс>)
— отображает строку с указанным индексом. Метод является слотом;
 isRowHidden(<Индекс>)
— возвращает значение
True
, если строка с указанным индексом скрыта, и
False
— в противном случае;
 setColumnHidden(<Индекс>, <Флаг>)
— если во втором параметре указано значение
True
, то столбец с индексом, указанным в первом параметре, будет скрыт. Значение
False отображает столбец;
 hideColumn(<Индекс>)
— скрывает столбец с указанным индексом. Метод является сло- том;
 showColumn(<Индекс>)
— отображает столбец с указанным индексом. Метод является слотом;

520
Часть II. Библиотека PyQt 5
 isColumnHidden(<Индекс>)
— возвращает значение
True
, если столбец с указанным ин- дексом скрыт, и
False
— в противном случае;
 isIndexHidden()
— возвращает значение
True
, если элемент с указанным индексом (экземпляр класса
QModelIndex
) скрыт, и
False
— в противном случае;
 setGridStyle(<Стиль>)
— задает стиль линий сетки. В качестве параметра указываются следующие атрибуты класса
QtCore.Qt
:

NoPen

0
— линии не выводятся;

SolidLine

1
— сплошная линия;

DashLine

2
— штриховая линия;

DotLine

3
— точечная линия;

DashDotLine

4
— штрих и точка, штрих и точка и т. д.;

DashDotDotLine

5
штрих и две точки, штрих и две точки и т. д.;
 setShowGrid(<Флаг>)
— если в качестве параметра указано значение
True
, то сетка будет отображена, а если
False
— то скрыта. Метод является слотом;
 setSortingEnabled(<Флаг>)
— если в качестве параметра указано значение
True
, столб- цы можно сортировать с помощью щелчков мышью на их заголовках. При этом в заго- ловке показывается текущее направление сортировки;
 setCornerButtonEnabled(<Флаг>)
— если в качестве параметра указано значение
True
, с помощью кнопки в левом верхнем углу заголовка можно выделить всю таблицу. Зна- чение
False отключает кнопку;
 setWordWrap(<Флаг>)
— если в качестве параметра указано значение
True
, текст элемен- тов при необходимости будет переноситься по строкам;
 sortByColumn(<Индекс столбца>, <Направление>)
— производит сортировку. Если во втором параметре указан атрибут
AscendingOrder класса
QtCore.Qt
, сортировка произво- дится в прямом порядке, а если
DescendingOrder
— в обратном.
22.5.4. Иерархический список
Класс
QTreeView реализует иерархический список (рис. 22.3). Иерархия наследования:
(QObject, QPaintDevice) — QWidget — QFrame — QAbstractScrollArea —
QAbstractItemView — QTreeView
Формат конструктора класса
QTreeView
:
<Объект> = QTreeView([parent=<Родитель>])
Рис. 22.3. Компонент
QTreeView

Глава 22. Списки и таблицы
521
Класс
QTreeView наследует все методы и сигналы класса
QAbstractItemView
(см. разд. 22.5.1) и дополнительно поддерживает следующие методы (здесь приведены только основные — полный их список можно найти на странице https://doc.qt.io/qt-5/qtreeview.html):
 header()
— возвращает ссылку на горизонтальный заголовок (экземпляр класса
QHeaderView
);
 setColumnWidth(<Индекс>, <Ширина>)
— задает ширину столбца с указанным в первом параметре индексом;
 columnWidth(<Индекс>)
— возвращает ширину столбца;
 rowHeight()
— возвращает высоту строки, в которой находится элемент с указанным индексом (экземпляр класса
QModelIndex
);
 resizeColumnToContents(<Индекс столбца>)
— изменяет ширину указанного столбца таким образом, чтобы в нем поместилось все содержимое. Метод является слотом;
 setUniformRowHeights(<Флаг>)
— если в качестве параметра указано значение
True
, все элементы будут иметь одинаковую высоту;
 setHeaderHidden(<Флаг>)
— если в качестве параметра указано значение
True
, заголовок будет скрыт. Значение
False отображает заголовок;
 isHeaderHidden()
— возвращает значение
True
, если заголовок скрыт, и
False
— в про- тивном случае;
 setColumnHidden(<Индекс>, <Флаг>)
— если во втором параметре указано значение
True
, то столбец с индексом, указанным в первом параметре, будет скрыт. Значение
False отображает столбец;
 hideColumn(<Индекс>)
— скрывает столбец с указанным индексом. Метод является сло- том;
 showColumn(<Индекс>)
— отображает столбец с указанным индексом. Метод является слотом;
 isColumnHidden(<Индекс>)
— возвращает значение
True
, если столбец с указанным ин- дексом скрыт, и
False
— в противном случае;
 setRowHidden(<Индекс>, , <Флаг>)
— если в третьем параметре указано значение
True
, то строка с индексом
<Индекс>
и родителем

будет скрыта.
Значение
False отображает строку;
 isRowHidden(<Индекс>, )
— возвращает значение
True
, если строка с ука- занным индексом
<Индекс>
и родителем
1   ...   45   46   47   48   49   50   51   52   ...   83


написать администратору сайта