2.56M
Category: programmingprogramming

Печать. Класс QPrintDialog

1.

Печать
Бушкиев Церен Юрьевич
[email protected]

2.

Класс QPrintDialog
Класс
QPrintDialog
реализует
функциональность
стандартного
диалогового окна выбора и настройки принтера, которое позволяет
выбрать
принтер,
задать
количество
копий,
диапазон
печатаемых
страниц и некоторые другие параметры.
Иерархия наследования этого класса:
(QObject, QPaintDevice) — QWidget — QDialog – QAbstractPrintDialog
– QPrintDialog
Конструктор класса QPrintDialog имеет следующий формат:
<Объект> = QPrintDialog(<QPrinter>[, parent=None])
В первом параметре указывается принтер, настройки которого будут
задаваться в диалоговом окне. Необязательный параметр parent может
быть использован для задания родителя.

3.

Класс QPrintDialog
Перед выводом диалогового окна настройки принтера можно указать
для него значения по умолчанию, воспользовавшись методами класса
QPrinter. Например, для указания размера бумаги следует вызвать
метод setPageSize(), для задания количества копий — setCopyCount()
и т. д.
Вывести диалоговое окно на экран можно вызовом методов exec() или
exec_(), унаследованных от класса QDialog.
После закрытия диалогового окна все заданные в нем параметры при
необходимости
класса
могут
быть
QPrinter. Так,
получены
выяснить
через
размер
соответствующие
бумаги,
ее
методы
ориентацию
и
отступы от краев позволит метод pageLayout(), количество копий
документа — метод copyCount() и т. д.

4.

Методы QPrintDialog
setOption(<Настройка
принтера>[,
on=True])

активизирует
указанную в первом параметре настройку принтера, если в параметре
on задано значение
True,
и
сбрасывает,
если передано
False. В
первом параметре указывается одно из значений следующих атрибутов
класса QAbstractPrintDialog или их комбинация через оператор |:
• None — 0 — все настройки принтера сброшены;
• PrintToFile — 1 — печать в файл;
• PrintSelection — 2 — выбор принтера;
• PrintPageRange — 4 — указание диапазона печатаемых страниц;
• PrintShowPageSize — 8 — указание размера страницы;
PrintCollateCopies

16

указание
режима
печати
копий
документов
• PrintCurrentPage — 64 — указание печати только текущей страницы;

5.

Методы QPrintDialog
setOptions(<Настройки принтера>) — позволяет активизировать сразу
несколько настроек принтера;
testOption(<Настройка принтера>) — возвращает True, если заданная
настройка принтера активизирована, и False — в противном случае;
options()

возвращает
QAbstractPrintDialog
комбинацию
через
оператор
значений
|,
атрибутов
которые
класса
представляют
активизированные настройки;
printer()

возвращает
принтер
выбранный в диалоговом окне.
(экземпляр
класса
QPrinter),

6.

Класс QPageSetupDialog
Класс QPageSetupDialog реализует работу стандартного диалогового
окна установки параметров страницы: размера, ориентации, отступов
и др.
Иерархия наследования этого класса:
(QObject, QPaintDevice) — QWidget — QDialog – QPageSetupDialog
Конструктор класса QPageSetupDialog имеет следующий формат:
<Объект> = QPageSetupDialog([parent=None])
создает диалоговое окно, привязанное к используемому по умолчанию принтеру
<Объект> = QPageSetupDialog(<QPrinter>[, parent=None])
позволяет указать нужный нам принтер в виде экземпляра класса QPrinter

7.

Задача
Напишем
приложение
для
печати
изображений. Его
интерфейс очень прост и включает:
• кнопку открытия файла,
• кнопку
вывода
диалоговых
принтера и параметров страницы,
• кнопку печати.
окон
настройки

8.

Класс QPrintPreviewDialog
Класс
QPrintPreviewDialog
выводит
документ
в
стандартном
диалоговом окне предварительного просмотра.
Иерархия наследования этого класса:
(QObject, QPaintDevice) — QWidget — QDialog – QPrintPreviewDialog
Конструктор класса QPrintPreviewDialog имеет следующий формат:
<Объект> = QPrintPreviewDialog([parent=None][, flags=0])
создает диалоговое окно, привязанное к используемому по умолчанию принтеру
<Объект>
=
QPrintPreviewDialog(<QPrinter>[,
parent=None][,
flags=0])
позволяет указать нужный нам принтер в виде экземпляра класса QPrinter.
Необязательный параметр parent может быть использован для задания родителя,
а необязательный параметр flags — для установки типа окна.

9.

Класс QPrintPreviewDialog
Вывод документа для предварительного просмотра с помощью класса
QPrintPreviewDialog выполняется в три этапа:
1. Создание экземпляра класса QPrintPreviewDialog.
2. Назначение сигналу paintRequested(<QPrinter>) этого экземпляра
обработчика, внутри которого и будет выполняться вывод документа.
3. Вывод
диалогового
окна
на
экран
вызовом
exec_() экземпляра класса QPrintPreviewDialog.
метода
exec()
или

10.

Класс QWinTaskbarButton
Класс
текущее
QWinTaskbarButton
приложение
на
создает
кнопку,
стандартной
панели
которая
задач.
представляет
Формат
его
конструктора:
<Объект> = QWinTaskbarButton([parent=None])
В параметре parent можно указать родителя.
Класс QWinTaskbarButton поддерживает следующие методы:
setWindow(<QWindow>)

задает
окно
(экземпляр
класса
QWindow),
которое должна представлять кнопка.
Получить экземпляр упомянутого ранее класса, представляющий окно,
можно вызовом метода windowHandle() класса QWidget.
def showEvent(self, evt):
self.taskbarButton.setWindow(self.windowHandle())

11.

Класс QWinTaskbarButton
window()

возвращает
экземпляр
класса
QWindow,
представляющий
окно, с которым связана кнопка;
setOverlayIcon(<QIcon>) — задает новый значок (экземпляр класса
QIcon) для кнопки:
taskbarButton = QtWinExtras.QWinTaskbarButton(window)
. . .
taskbarButton.setOverlayIcon(QtGui.QIcon("taskbar_icon.png"))
Заданный с применением этого метода значок будет выводиться на кнопке поверх
стандартного
значка
приложения
и
перекрывать
его.
Обычно
такие
применяются для обозначения состояния, в котором находится приложение;
значки

12.

Класс QWinTaskbarButton
clearOverlayIcon() — убирает заданный ранее перекрывающий значок.
Метод является слотом;
overlayIcon() — возвращает экземпляр класса QIcon, представляющий
заданный для кнопки перекрывающий значок;
setOverlayAccessibleDescription(<Описание>)

указывает
описание
для перекрывающего значка, заданное в виде строки. Метод является
слотом;
overlayAccessibleDescription()

возвращает
описание
перекрывающего значка;
progress() — возвращает наложенный индикатор процесса (экземпляр
класса QWinTaskbarProgress), заданный для кнопки.

13.

Задача
Напишем код, создающий окно с тремя кнопками, две
из которых задают для кнопки панели задач разные
перекрывающие значки, а третья убирает значок.

14.

Класс QWinTaskbarProgress
Класс
QWinTaskbarProgress
представляет
индикатор
процесса,
выводящийся на кнопке панели задач поверх всех имеющихся на ней
значков — как стандартного, так и перекрывающего.
Создавать экземпляр этого класса вызовом его конструктора нам не
придется. Любая кнопка панели задач уже имеет такой индикатор,
изначально невидимый.
Получить
его
QWinTaskbarButton.
можно
вызовом
метода
progress()
класса

15.

Методы QWinTaskbarProgress
• setVisible(<Флаг>) — если передать методу с параметром значение
True,
индикатор
появится
на
экране. Значение
False
скрывает
индикатор. Метод является слотом;
• show() — выводит индикатор на экран. Метод является слотом;
• hide() — скрывает индикатор. Метод является слотом;
• isVisible() — возвращает True, если индикатор присутствует на
экране, и False, если он скрыт;
• setRange(<Минимум>, <Максимум>) — задает минимальное и максимальное
значения для воображаемой шкалы индикатора, указанные в виде целых чисел.
Если
оба
значения
равны
0,
индикатор
будет
находиться
в
так
называемом
неопределенном состоянии, и по нему будет бежать бесконечная зеленая волна.
Метод является слотом;

16.

Методы QWinTaskbarProgress
• setMinimum(<Минимум>)
соответственно,
и
setMaximum(<Максимум>)
минимальное
и
максимальное

задают,
значения
для
воображаемой шкалы индикатора. Оба метода являются слотами;
• minimum() и maximum() — возвращают, соответственно, минимальное
и максимальное значения воображаемой шкалы индикатора;
• setValue(<Значение>)

указывает
значение,
отображаемое
индикатором в текущий момент. Метод является слотом;
• value() — возвращает текущее значение, отображаемое индикатором;
• pause() — ставит индикатор на паузу. Индикатор, поставленный на
паузу, выводится желтым цветом. Метод является слотом;
• stop()

останавливает
индикатор.
Остановленный
выводится красным цветом. Метод является слотом;
индикатор

17.

Методы QWinTaskbarProgress
• resume()

вновь
запускает
поставленный
на
паузу
или
остановленный индикатор. Работающий индикатор выводится зеленым
цветом. Метод является слотом;
• setPaused(<Флаг>) — если передать методу с параметром значение
True, индикатор будет поставлен на паузу, если False — вновь
запущен. Метод является слотом;
• reset()

сбрасывает
индикатор,
перемотав
его
на
начальное
значение воображаемой шкалы. Метод является слотом;
• isPaused() — возвращает True, если индикатор в текущий момент
поставлен на паузу, и False — в противном случае;
• isStopped() — возвращает True, если индикатор в текущий момент
остановлен, и False — в противном случае.

18.

Сигналы QWinTaskbarProgress
• visibilityChanged(<Новое состояние>) — генерируется при выводе
индикатора
на
экран
или
его
скрытии. В
параметре
передается
величина True, если индикатор выведен на экран, и False, если он
скрыт;
• valueChanged(<Новое
значения,
значение>)
отображаемого

генерируется
индикатором. В
при
параметре
изменении
обработчику
передается новое значение;
• minimumChanged(<Новое
минимальное
значение>)
и
maximumChanged(<Новое максимальное значение>) — генерируются при
изменении, соответственно, минимального и максимального значения
у
воображаемой
шкалы
индикатора.
передается новое значение.
В
параметре
обработчику

19.

Задача
Напишем
пример
приложения,
использующего
индикатор на кнопке панели задач. Это приложение
при
нажатии
секундным
кнопки
промежутком
Пуск
последовательно,
увеличивает
с
значение
индикатора от 0 до 10, позволяя ставить его на
паузу, останавливать и запускать вновь.

20.

Домашнее задание
Добавить
возможность
в
блокнот
из
предварительного
а также сохранения в PDF
прошлого
задания
просмотра
текста,

21.

Спасибо
за внимание
Бушкиев Церен Юрьевич
English     Русский Rules