Шаг 303.
Библиотека PyQt5.
Печать документов. Основные средства печати. Служебные классы. Класс QPageSize

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

    Класс QPageSize, объявленный в модуле QtGui, описывает размеры, или, говоря другими словами, формат бумаги, на которой осуществляется печать. Для указания размера бумаги, который будет использовать принтер, предназначен метод setPageSize() класса QPrinter.

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

  <Объект> = QPageSize()
  <Объект> = QPageSize(<Идентификатор размера бумаги>)
  <Объект> = QPageSize(<QSize>[, name=""][, matchPolicy=FuzzyMatch])
  <Объект> = QPageSize(<QSizeF>, <Единица измерения>[, name=""][, 
      matchPolicy=FuzzyMatch])

    Первый формат создает "пустой" экземпляр класса, не хранящий данные ни о каком размере бумаги.

    Второй формат позволяет указать размер сразу, в виде значения одного из следующих атрибутов класса QPageSize (здесь приведены только наиболее употребительные размеры - полный их список доступен на странице https://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum): А0 (5), А1 (6), А2 (7), A3 (8), А4 (0), А5 (9), Letter (2), Legal (3).

    Третий и четвертый форматы служат для создания нестандартных размеров бумаги, при этом третий формат принимает в качестве первого параметра экземпляр класса QSize (см. 32 шаг), указывающий сами размеры в пунктах. В параметре name можно задать имя создаваемого размера бумаги - если он не указан, будет создано имя по умолчанию вида Custom(<Ширина>*<Высота>).

    Если заданные размеры близки к размерам какого-либо из стандартных форматов бумаги, будет использован этот формат. В параметре matchPolicy можно задать режим подбора стандартного формата бумаги в виде одного из следующих атрибутов класса QPageSize:

    Четвертый формат принимает в качестве первого параметра экземпляр класса QSizeF, указывающий размеры бумаги. Вторым параметром должна быть задана единица измерения размеров в виде значения одного из следующих атрибутов класса QPageSize:

    Примеры:

  #  Задаем размер бумаги А5
  ps = QtGui.QPageSize(QtGui.QPageSize. A5) 
  printer.setPageSize(ps)
  # Задаем размер бумаги 100 x 100 пунктов с названием "Особый размер"
  sz = QtCore.QSize(400, 300)
  ps = QtGui.QPageSize(sz, name="Особый размер", 
      matchPolicy = QtGui.QPageSize.FuzzyMatch) 
  pl.printer.setPageSize(ps)

    Класс QPageSize поддерживает следующие полезные для нас методы (полный их список доступен на странице https://doc.qt.io/qt-5/qpagesize.html):

    Также класс QPageSize поддерживает операторы сравнения == и !=:

  s1 = QtGui.QPageSize(QtGui.QPageSize.A4) 
  s2 = QtGui.QPageSize(QtGui.QPageSize.A4) 
  s3 = QtGui.QPageSize(QtGui.QPageSize.A3)
  rint(s1 == s2)   # Выведет: True
  print(s1 != s3)  # Выведет: True

    На следующем шаге мы рассмотрим класс QPageLayout.




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