Шаг 306.
Библиотека PyQt5.
Печать документов. Задание параметров принтера и страницы. Класс QPrintDialog

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

    Класс QPrintDialog реализует функциональность стандартного диалогового окна выбора и настройки принтера, которое позволяет выбрать принтер, задать количество копий, диапазон печатаемых страниц и некоторые другие параметры (рисунок 1).


Рис.1. Стандартное диалоговое окно выбора и настройки принтера

    Иерархия наследования этого класса:

  (QObject, QPaintDevice) - QWidget - QDialog - 
      QAbstractPrintDialog - QPrintDialog

    Конструктор класса QPrintDialog имеет следующий формат:

  <Объект> = QPrintDialog(<QPrinter>[, parent=None])

    В первом параметре указывается принтер, настройки которого будут задаваться в диалоговом окне. Необязательный параметр parent может быть использован для задания родителя.

    Перед выводом диалогового окна настройки принтера можно указать для него значения по умолчанию, воспользовавшись методами класса QPrinter, описанными в 299 шаге. Например, для указания размера бумаги следует вызвать метод setPageSize(), для задания количества копий - setCopyCount() и т. д.

    Вывести диалоговое окно на экран можно вызовом методов exec() или ехес_(), унаследованных от класса QDialog.

    После закрытия диалогового окна все заданные в нем параметры при необходимости могут быть получены через соответствующие методы класса QPrinter. Так, выяснить размер бумаги, ее ориентацию и отступы от краев позволит метод pageLayout(), количество копий документа - метод copyCount() и т. д. Все эти методы были описаны на 299 шаге.

    Впрочем, надо сказать, что все настройки, заданные в этом диалоговом окне, будут применены к принтеру самой библиотекой PyQt. Так, если пользователь выберет другой принтер, печать будет выполнена на выбранном им принтере. А если он укажет напечатать документ в нескольких копиях, все эти копии будут напечатаны PyQt самостоятельно. Никакого кода нам самим для этого писать не придется.

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

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




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