Шаг 304.
Библиотека PyQt5. Печать документов. Основные средства печати. Служебные классы. Класс QPageLayout
На этом шаге мы рассмотрим назначение, форматы конструктора и основные методы этого класса.
Класс QPageLayout, также объявленный в модуле QtGui, представляет сразу размеры, ориентацию страницы и величины отступов от краев страницы. Передать все эти сведения принтеру позволяет метод
setPageLayout() класса QPrinter.
Форматы вызова конструктора этого класса:
<Объект> = QPageLayout()
<Объект> = QPageLayout(<QPageSize>, <Ориентация>, <QMarginsF>[,
units=Point][, minMargins=QMarginsF(0, 0, 0, 0)])
Первый формат создает "пустой" объект, не хранящий никаких сведений. Второй формат позволяет задать сразу все необходимые сведения о бумаге. Назначение его параметров:
- размер бумаги в виде экземпляра класса QPageSize;
- ориентация бумаги в виде значения атрибута Portrait (0, портретная) или Landscape (l, ландшафтная) класса QPageLayout;
- размеры отступов от краев страницы в виде экземпляра класса QMarginsF;
- units - единицы измерения размеров в виде значения одного из атрибутов класса QPageLayout (они были приведены в описании метода setPageMargins() -
см. 299 шаг);
- minMargins - минимальные отступы от краев страницы, которые может соблюсти принтер, в виде экземпляра класс QMarginsF.
Пример:
layout = QtGui.QPageLayout(QtGui.QPageSize(QtGui.QPageSize. A5),
QtGui.QPageLayout.Landscape, QtCore.QMarginsF(10, 10, 10, 10),
units = QtGui.QPageLayout.Millimeter)
p1.printer.setPageLayout(layout)
Наиболее полезные для нас методы, поддерживаемые классом QPageLayout, приведены далее. Полный их список можно найти на странице
https://doc.qt.io/qt-5/qpagelayout.html):
- setPageSize ([, minMargins=QMarginsF(0, 0, 0, 0)]) - задает размеры
бумаги в виде экземпляра класса QPageSize. В необязательном параметре minMargins
можно указать минимальные величины отступов от краев страницы (экземпляр класса QMarginsF);
- setOrientation (<Ориентация>) - задает ориентацию страницы в виде значения атрибута Portrait (0, портретная) или Landscape (l, ландшафтная) класса QPageLayout;
- setMargins (<QMarginsF>) - задает величины отступов от краев страницы в виде экземпляра класса QMarginsF. Возвращает True, если операция прошла успешно, и False - в противном случае;
- setLeftMargin (<Отступ>), setTopMargin (<Отступ>), setRightMargin (<Отступ>) и setBottomMargin (<Отступ>) - задают величины
отступов от левого, верхнего, правого и нижнего края страницы соответственно. Возвращают True, если операция прошла успешно, и False - в противном случае;
- setUnits (<Единица измерения>) - задает единицу измерения размеров в виде значения одного из атрибутов класса QPageLayout (они были приведены в
описании метода setPageMargins() - см. 299 шаг);
- setMinimumMargins (<QMarginsF>) - задает минимальные величины отступов от краев страницы в виде экземпляра класса QMarginsF;
- swap (<QPageLayout>) - меняет параметры бумаги, хранящиеся в текущем экземпляре класса, на заданные в параметре;
- fullRect ([<Единица измерения>]) - возвращает размеры страницы с учетом ориентации, но без учета отступов в виде экземпляра класса QRectF. Если единица
измерения не указана, выведенные значения будут исчисляться в текущей единице измерения, заданной в конструкторе. Пример:
layout = QtGui.QPageLayout(QtGui.QPageSize(QtGui.QPageSize.A5),
QtGui.QPageLayout.Landscape, QtCore.QMarginsF(10, 10, 10, 10),
units = QtGui.QPageLayout.Millimeter)
r = layout.fulдRect() print(r.width(), "x", r.height())
# Выведет: 210.0 x 148.0
- fullRectPixels (<Разрешение>) - возвращает размеры страницы в пикселях с учетом ориентации, но без учета отступов для заданного разрешения, которое
измеряется в точках на дюйм. Результат представляет собой экземпляр класса QRect;
- fullRectPoints () - возвращает размеры страницы в пунктах с учетом ориентации, но без учета отступов в виде экземпляра класса QRect;
- paintRect ([<Единица измерения>]) - возвращает размеры страницы с учетом ориентации и отступов (фактически - доступной для вывода графики области страницы) в виде экземпляра класса QRectF.
Если единица измерения не указана, выведенные значения будут исчисляться в текущей единице измерения, заданной в конструкторе;
- paintRectPixels (<Разрешение>) - возвращает размеры страницы в пикселях с учетом ориентации и отступов для заданного разрешения, которое измеряется в точках на дюйм.
Результат представляет собой экземпляр класса QRect;
- paintRectPoints () - возвращает размеры страницы в пунктах с учетом ориентации и отступов в виде экземпляра класса QRect;
- maximumMargins () - возвращает максимально возможные значения отступов от края страницы в виде экземпляра класса QMarginsF.
Класс QPageLayout также поддерживает операторы сравнения == и !=.
На следующем шаге мы рассмотрим задание параметров принтера и страницы.
Предыдущий шаг
Содержание
Следующий шаг