ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 862
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Заголовок
")# Файл page2.html будет загружен с сайта http://www.somesite.ru/ webview.setHtml("Вторая страница",
QtCore.QUrl('http://www.somesite.ru/'))
selectedText()
— возвращает выделенный текст или пустую строку, если ничего не бы- ло выделено;
hasSelection()
— возвращает
True
, если фрагмент страницы был выделен, и
False
— в противном случае;
setZoomFactor(<Множитель>)
— задает масштаб самой страницы. Значение
1
указывает, что страница будет выведена в оригинальном масштабе, значение меньше единицы — в уменьшенном, значение больше единицы — увеличенном масштабе;
zoomFactor()
— возвращает масштаб страницы;
back()
— загружает предыдущий ресурс из списка истории. Метод является слотом;
forward()
— загружает следующий ресурс из списка истории. Метод является слотом;
reload()
— перезагружает страницу. Метод является слотом;
stop()
— останавливает загрузку страницы. Метод является слотом;
icon()
— возвращает в виде экземпляра класса
QIcon значок, заданный для страницы;
findText(<Искомый текст>[, options=QWebEnginePage.FindFlags()][, resultCallback=0])
— позволяет найти на странице заданный фрагмент текста. Все найденные фрагменты будут выделены желтым фоном непосредственно в компоненте
QWebEngineView
Глава 21. Основные компоненты
495
Необязательный параметр option позволяет указать дополнительные параметры в виде экземпляра класса
QWebEnginePage.FindFlags из того же модуля
QtWebEngineWidgets
В конструкторе этого класса можно указать один из атрибутов класса
QWebEnginePage из модуля
QtWebEngineWidgets или их комбинации через оператор
|
:
•
FindBackward
—
1
— выполнять поиск в обратном, а не в прямом направлении;
•
FindCaseSensitively
—
2
— поиск с учетом регистра символов (по умолчанию вы- полняется поиск без учета регистра).
В необязательном параметре resultCallback можно указать функцию, которая будет вы- звана по окончании поиска. Эта функция должна принимать единственный параметр, которым станет логическая величина
True
, если поиск увенчался успехом, или
False
— в противном случае.
Вот пример поиска с учетом регистра и выделением всех найденных совпадений: web.findText('Python', options=QtWebEngineWidgets.QWebEnginePage.FindFlags(
QtWebEngineWidgets.QWebEnginePage.FindBackward |
QtWebEngineWidgets.QWebEnginePage.FindCaseSensitively))
triggerPageAction(<Действие>[, checked=False])
— выполняет над страницей указан- ное действие. В качестве действия задается один из атрибутов класса
QWebEnginePage
— этих атрибутов очень много, и все они приведены на странице https://doc.qt.io/ qt-5/qwebenginepage.html#WebAction-enum. Необязательный параметр checked имеет смысл указывать лишь для действий, принимающих логический флаг:
# Выделение всей страницы web.triggerPageAction(QtWebEngineWidgets.QWebEnginePage.SelectAll)
# Копирование выделенного фрагмента страницы web.triggerPageAction(QtWebEngineWidgets.QWebEnginePage.Copy)
# Перезагрузка страницы, минуя кэш web.triggerPageAction(QtWebEngineWidgets.QWebEnginePage.ReloadAndBypassCache)
page()
— возвращает экземпляр класса
QWebEnginePage из модуля
QtWebEngineWidgets
, представляющий открытую веб-страницу.
Класс
QWebEngineView поддерживает следующий набор полезных для нас сигналов (полный их список смотрите на странице https://doc.qt.io/qt-5/qwebengineview.html):
iconChanged
— генерируется после загрузки или изменения значка, заданного для стра- ницы;
loadFinished(<Признак>)
— генерируется по окончании загрузки страницы. Значение
True параметра указывает, что загрузка выполнена без проблем,
False
— что при загруз- ке произошли ошибки;
loadProgress(<Процент выполнения>)
— периодически генерируется в процессе загрузки страницы. В качестве параметра передается целое число от
0
до
100
, показывающее про- цент загрузки;
loadStarted
— генерируется после начала загрузки страницы;
selectionChanged
— генерируется при выделении нового фрагмента содержимого стра- ницы;
titleChanged(<Текст>)
— генерируется при изменении текста заголовка страницы (со- держимого тега
). В параметре, передаваемом обработчику, доступен этот текст в виде строки;
496
Часть II. Библиотека PyQt 5
urlChanged(
— генерируется при изменении адреса текущей страницы, что мо- жет быть вызвано, например, загрузкой новой страницы. Параметр — новый адрес.
Класс
QWebEnginePage
, представляющий открытую в веб-браузере страницу и получаемый вызовом метода page()
класса
QWebEngineView
, поддерживает следующие полезные для нас методы (полный их список смотрите на странице https://doc.qt.io/qt-5/qwebenginepage.html):
print(
— печатает содержимое страницы на заданном принтере.
Вторым параметром указывается функция, которая будет вызвана после окончания пе- чати и должна принимать единственный параметр, которым будет значение
True
, если печать завершилась успешно, и
False
— в противном случае. Метод поддерживается
PyQt, начиная с версии 5.8;
printToPdf()
— преобразует страницу в формат PDF. Форматы метода: printToPdf(<Путь файла>, pageLayout=QPageLayout(QPageSize(QPageSize::A4),
QPageLayout::Portrait, QMarginsF())) printToPdf(<Функция>, pageLayout=QPageLayout(QPageSize(QPageSize::A4),
QPageLayout::Portrait, QMarginsF()))
Первый формат сразу сохраняет преобразованную страницу в файле, чей путь указан первым параметром. Второй формат после преобразования вызывает указанную в пер- вом параметре функцию, передавая ей в качестве единственного параметра массив типа bytes
, хранящий преобразованную страницу.
Необязательный параметр pageLayout задает настройки страницы в виде экземпляра класса
QPageLayout
(он будет описан в главе 29). Если параметр не указан, будет выпол- нена печать на бумаге типоразмера А4, в портретной ориентации, без отступов.
Метод поддерживается PyQt, начиная с версии 5.7;
save(<Путь файла>, format=QWebEngineDownloadItem::MimeHtmlSaveFormat)
— сохраня- ет страницу в файле, чей путь указан в первом параметре. Необязательный параметр format задает формат файла — для него можно задать один из следующих атрибутов класса
QWebEngineDownloadItem
, определенного в модуле
QtWebEngineWidgets
:
•
SingleHtmlSaveFormat
—
0
— обычный HTML-файл. Связанные со страницей файлы
(изображения, аудио- и видеоролики, таблицы стилей и пр.) не сохраняются;
•
CompleteHtmlSaveFormat
—
1
— то же самое, только связанные файлы будут сохране- ны в каталоге, находящемся там же, где и файл со страницей, и имеющем то же имя;
•
MimeHtmlSaveFormat
—
2
— страница и все связанные файлы сохраняются в одном файле.
Метод поддерживается PyQt, начиная с версии 5.8;
contentsSize()
— возвращает экземпляр класса
QSizeF
, хранящий размеры содержимого страницы. Метод поддерживается PyQt, начиная с версии 5.7;
scrollPosition()
— возвращает экземпляр класса
QPointF
, хранящий позицию прокрут- ки содержимого страницы. Метод поддерживается PyQt, начиная с версии 5.7;
setAudioMuted(<Флаг>)
— если с параметром передать значение
True
, все звуки, воспро- изводящиеся на странице, будут приглушены. Чтобы снова сделать их слышимыми, нужно передать значение
False
. Метод поддерживается PyQt, начиная с версии 5.7;
Глава 21. Основные компоненты
497
isAudioMuted()
— возвращает
True
, если все звуки, воспроизводящиеся на странице, приглушены, и
False
— в противном случае. Метод поддерживается PyQt, начиная с версии 5.7;
setBackgroundColor(<Цвет>)
— задает для страницы фоновый цвет, указанный в виде экземпляра класса
QColor
. Метод поддерживается PyQt, начиная с версии 5.6;
backgroundColor()
— возвращает фоновый цвет страницы в виде экземпляра класса
QColor
. Метод поддерживается PyQt, начиная с версии 5.6.
ГЛ А В А
22
Списки и таблицы
PyQt содержит широкий выбор компонентов, позволяющих отображать как простой список строк (в свернутом или развернутом состояниях), так и табличные данные. Кроме того, можно отобразить данные, которые имеют очень сложную структуру, — например, иерар- хическую. Благодаря поддержке концепции «модель-представление», позволяющей отде- лить данные от их отображения, одни и те же данные можно отображать сразу в нескольких компонентах без их дублирования.
22.1. Раскрывающийся список
Класс
QComboBox реализует раскрывающийся список с возможностью выбора одного пункта.
При щелчке мышью на поле появляется список возможных вариантов, а при выборе пункта список сворачивается. Иерархия наследования выглядит так:
(QObject, QPaintDevice) — QWidget — QComboBox
Формат конструктора класса
QComboBox
:
<Объект> = QComboBox([parent=<Родитель>])
22.1.1. Добавление, изменение и удаление элементов
Для добавления, изменения, удаления и получения значения элементов предназначены сле- дующие методы класса
QComboBox
:
addItem()
— добавляет один элемент в конец списка. Форматы метода: addItem(<Строка>[, <Данные>]) addItem(
В параметре
<Строка>
задается текст элемента списка, а в параметре
— значок, который будет отображен перед текстом. Необязательный параметр
<Данные>
позволяет сохранить пользовательские данные — например, индекс в таблице базы данных;
addItems(<Список строк>)
— добавляет несколько элементов в конец списка;
insertItem()
— вставляет один элемент в указанную позицию списка. Все остальные элементы сдвигаются в конец списка. Форматы метода: insertItem(<Индекс>, <Строка>[, <Данные>]) insertItem(<Индекс>,
Глава 22. Списки и таблицы
499
insertItems(<Индекс>, <Список строк>)
— вставляет несколько элементов в указанную позицию списка. Все остальные элементы сдвигаются в конец списка;
insertSeparator(<Индекс>)
— вставляет разделительную линию в указанную позицию;
setItemText(<Индекс>, <Строка>)
— изменяет текст элемента с указанным индексом;
setItemIcon(<Индекс>,
— изменяет значок элемента с указанным индексом;
setItemData(<Индекс>, <Данные>[, role=UserRole])
— изменяет данные для элемента с указанным индексом. Необязательный параметр role позволяет указать роль, для ко- торой задаются данные. Например, если указать атрибут
ToolTipRole класса
QtCore.Qt
, данные зададут текст всплывающей подсказки, которая будет отображена при наведении указателя мыши на элемент. По умолчанию изменяются пользовательские данные;
removeItem(<Индекс>)
— удаляет элемент с указанным индексом;
setCurrentIndex(<Индекс>)
— делает элемент с указанным индексом текущим. Метод является слотом;
currentIndex()
— возвращает индекс текущего элемента;
setCurrentText(<Строка>)
— делает элемент с текстом, совпадающим с указанной стро- кой, текущим. Метод является слотом;
currentText()
— возвращает текст текущего элемента;
itemText(<Индекс>)
— возвращает текст элемента с указанным индексом;
itemData(<Индекс>[, role=UserRole])
— возвращает данные, сохраненные в роли role элемента с индексом
<Индекс>
;
count()
— возвращает общее количество элементов списка. Получить количество эле- ментов можно также с помощью функции len()
;
clear()
— удаляет все элементы списка.
22.1.2. Изменение параметров списка
Управлять параметрами раскрывающегося списка позволяют следующие методы класса
QComboBox
:
setEditable(<Флаг>)
— если в качестве параметра указано значение
True
, пользователь сможет вводить текст в раскрывающийся список и, возможно, добавлять таким образом в него новые элементы;
setInsertPolicy(<Режим>)
— задает режим добавления в список элементов, введенных пользователем. В качестве параметра указываются следующие атрибуты класса
QComboBox
:
•
NoInsert
—
0
— элемент не будет добавлен;
•
InsertAtTop
—
1
— элемент вставляется в начало списка;
•
InsertAtCurrent
—
2
— будет изменен текст текущего элемента;
•
InsertAtBottom
—
3
— элемент добавляется в конец списка;
•
InsertAfterCurrent
—
4
— элемент вставляется после текущего элемента;
•
InsertBeforeCurrent
—
5
— элемент вставляется перед текущим элементом;
500
Часть II. Библиотека PyQt 5
•
InsertAlphabetically
—
6
— при вставке учитывается алфавитный порядок следова- ния элементов;
setEditText(<Текст>)
— вставляет текст в поле редактирования. Метод является слотом;
clearEditText()
— удаляет текст из поля редактирования. Метод является слотом;
setCompleter(
— позволяет предлагать возможные варианты значений, начинающиеся с введенных пользователем символов. В качестве параметра указывается экземпляр класса
QCompleter
;
setValidator(
— устанавливает контроль ввода. В качестве значения ука- зывается экземпляр класса, наследующего класс
QValidator
(см. разд. 21.5.3);
setDuplicatesEnabled(<Флаг>)
— если в качестве параметра указано значение
True
, пользователь может добавить элемент с повторяющимся текстом. По умолчанию повто- ры запрещены;
setMaxCount(<Количество>)
— задает максимальное количество элементов в списке.
Если до вызова метода количество элементов превышало это количество, лишние эле- менты будут удалены;
setMaxVisibleItems(<Количество>)
— задает максимальное количество видимых эле- ментов в раскрывающемся списке;
setMinimumContentsLength(<Количество>)
— задает минимальное количество символов, которое должно помещаться в раскрывающемся списке;
setSizeAdjustPolicy(<Режим>)
— задает режим установки ширины списка при измене- нии содержимого. В качестве параметра указываются следующие атрибуты класса
QComboBox
:
•
AdjustToContents
—
0
— ширина списка подстраивается под ширину текущего со- держимого;
•
AdjustToContentsOnFirstShow
—
1
— ширина списка подстраивается под ширину со- держимого, имевшегося в списке при первом его отображении;
•
AdjustToMinimumContentsLength
—
2
— использовать вместо него
AdjustToContents или
AdjustToContentsOnFirstShow
;
•
AdjustToMinimumContentsLengthWithIcon
—
3
— используется значение минимальной ширины, которое установлено с помощью метода setMinimumContentsLength()
, плюс ширина значка;
setFrame(<Флаг>)
— если в качестве параметра указано значение
False
, список будет отображаться без рамки;
setIconSize(
— задает максимальный размер значков;
showPopup()
— разворачивает список;
hidePopup()
— сворачивает список.
22.1.3. Поиск элементов
Произвести поиск элемента в списке позволяют методы findText()
(по тексту элемента) и findData()
(по данным с указанной ролью). Методы возвращают индекс найденного эле- мента или значение
-1
, если таковой не был найден. Форматы методов: findText(<Текст>[, flags=MatchExactly | MatchCaseSensitive]) findData(<Данные>[, role=UserRole][, flags=MatchExactly | MatchCaseSensitive])
Глава 22. Списки и таблицы
501
Параметр flags задает режим поиска. В качестве значения через оператор
|
можно указать комбинацию следующих атрибутов класса
QtCore.Qt
:
MatchExactly
—
0
— поиск полного соответствия;
MatchContains
—
1
— поиск совпадения с любой частью;
MatchStartsWith
—
2
— совпадение с началом;
MatchEndsWith
—
3
— совпадение с концом;
MatchRegExp
—
4
— поиск с помощью регулярного выражения;
MatchWildcard
—
5
— используются подстановочные знаки;
MatchFixedString
—
8
— поиск полного соответствия внутри строки, выполняемый по умолчанию без учета регистра символов;
MatchCaseSensitive
—
16
— поиск с учетом регистра символов;
MatchWrap
—
32
— если просмотрены все элементы, и подходящий элемент не найден, поиск начнется с начала списка;
MatchRecursive
—
64
— просмотр всей иерархии.
22.1.4. Сигналы
Класс
QComboBox поддерживает следующие сигналы:
activated(<Индекс>)
и activated(<Текст>)
— генерируются при выборе пользователем пункта в списке (даже если индекс не изменился). Внутри обработчика доступен цело- численный индекс или текст элемента;
currentIndexChanged(<Индекс>)
и currentIndexChanged(<Текст>)
— генерируются при изменении текущего индекса. Внутри обработчика доступен целочисленный индекс
(значение
-1
, если список пуст) или текст элемента;
editTextChanged(<Текст>)
— генерируется при изменении текста в поле. Внутри обра- ботчика через параметр доступен новый текст;
highlighted(<Индекс>)
и highlighted(<Текст>)
— генерируются при наведении указате- ля мыши на пункт в списке. Внутри обработчика доступен целочисленный индекс или текст элемента.
22.2. Список для выбора шрифта
Класс
QFontComboBox реализует раскрывающийся список с названиями шрифтов. Шрифт можно выбрать из списка или ввести его название в поле — при этом станут отображаться названия, начинающиеся с введенных букв. Иерархия наследования:
(QObject, QPaintDevice) — QWidget — QComboBox — QFontComboBox
Формат конструктора класса
QFontComboBox
:
<Объект> = QFontComboBox([parent=<Родитель>])
Класс
QFontComboBox наследует все методы и сигналы класса
QComboBox
(см. разд. 22.1) и определяет несколько дополнительных методов:
1 ... 42 43 44 45 46 47 48 49 ... 83