Программирование | Отладка | Web-технологии | Microsoft Office | Теор.информатика | Исслед-е операций | Операц. сис-мы | Новости |
Проектирование ИС | Исск. инт-т | Трансляторы | Об авторах | Карта сайта | Поиск |
Язык программирования Turbo Pascal |
Среда программирования Delphi 6 |
Язык программирования C++ |
Язык программирования C# |
Язык программирования Assembler |
Язык программирования Go |
Язык программирования Haskell |
Язык программирования Java |
Язык программирования Kotlin |
Язык программирования LISP |
Язык программирования Prolog |
Язык программирования Python |
Параллельные алгоритмы |
Сети Петри |
Начала |
Отладчик Turbo Debugger |
Основы HTML |
Технология Flash |
Язык программирования Perl |
Основы языка PHP |
Основы PhotoShop |
Основы JavaScript |
Основы CSS |
Основы CorelDRAW |
Библиотека jQuery |
Текстовый процессор Microsoft Word |
Электронные таблицы Microsoft Excel |
Система управления базами данных Microsoft Access |
Использование VBA в Microsoft Excel |
Место информатики в системе наук |
Общие сведения об информации |
Кодирование информации в теории Шеннона |
Основные понятия теории алгоритмов |
Классические формализации понятия 'алгоритм' |
Понятие рекурсии |
Сложность алгоритма |
Методы разработки алгоритмов |
Сложность задачи |
Информационное моделирование |
Основные понятия теории графов |
Алгоритмы поиска на графах |
Матроиды. 'Жадные' алгоритмы |
Динамическое программирование |
Алгоритмы |
UNIX и Linux |
Унифицированный язык моделирования UML |
Введение в машинное обучение с использованием Python |
Основы создания нейросети на Python |
Глубокое обучение на Python |
Начала |
Динамические структуры данных |
Библиотека RX |
Основные классы и события Delphi |
Основные компоненты Delphi |
Организация потоков |
Технология COM |
Язык программирования Object Pascal |
Локальные БД в Delphi |
Библиотека OWL |
Библиотека Qt |
Библиотека STL |
Библиотека шаблонов классов Borland |
Основы компьютерной графики |
Динамические структуры данных |
Начала |
Обработка исключительных ситуаций |
Оптимизация с помощью ассемблера |
Основы объектно-ориентированного программирования |
Потоки ввода-вывода |
Разное |
Редактор Resource Workshop |
Среда Visual C++ |
Программирование в Microsoft Visual C++ 2010 |
Технология CUDA |
Технология OLE |
Начала |
16-битное программирование |
32-битное программирование |
Основы логического программирования |
Динамические структуры данных |
Visual Prolog |
Библиотека PyQt5 |
Библиотека Tkinter |
Визуализация данных |
Начала |
Задачи ComputerScience |
Рекурсия |
Вкладка RXControls |
Вкладка RXDBAware |
Вкладка RXTools |
Вкладка Standard |
Вкладка Additional |
Создание Internet-приложений |
Вкладка System |
Вкладка Win32 |
Вкладка Servers |
Технология ADO |
Вкладка QReport |
Вкладка InterBase |
Вкладка Dialogs |
Начала |
Среда программирования. Язык С/С++ |
На этом шаге мы рассмотрим назначение, форматы конструктора и основные методы этого класса.
Класс 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):
s = QtGui.QPageSize.size(QtGui.QPageSize.А0, QtGui,QPageSize.Millimeter) print (s.width(), "x", s.height()) # Выведет: 841.0 x 1189.0
ps = QtGui.QPageSize(QtGui.QPageSize.A5) s = ps.sizePixels(600) print(s.width(), "x", s.height()) # Выведет: 3500 x 4958
Также класс 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.