Самарев Р.С. - Программирование с использованием библиотеки Qt, страница 7
Описание файла
PDF-файл из архива "Самарев Р.С. - Программирование с использованием библиотеки Qt", который расположен в категории "". Всё это находится в предмете "языки интернет-программирования" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "языки интернет-программирования" в общих файлах.
Просмотр PDF-файла онлайн
Текст 7 страницы из PDF
Он обеспечивает формированиесоответствующего файла Makefile, который затем используется специальной программойсборки make. QMake может использоваться для любого программного проекта, независимо от того, используется ли в нем Qt или нет.При разработке программ с использованием Qt qmake обеспечивает автоматическое включение правил для использования компиляторов moc и uic. На основе проектаqmake может быть сформирован проект для Microsoft Visual Studio без каких либо его изменений.Проект qmake представляет собой текстовый файл, имеющий расширение .pro.Синтаксис командной строки:qmake [режим] [опции] файлы.Основные режимы запуска qmake следующие:- makefile – режим по умолчанию, в котором результатом работы qmake будетсформирован файл Makefile;- project – режим формирования файла проекта по шаблону.
Может использоваться как для автоматического формирования проекта .pro по содержимому текущей директории, так и для формирования проекта Microsoft Visual Studio из проекта .pro.Основные опции qmake:- help – выдать справку об использовании qmake;- o filename – результат работы qmake направить в файл filename;- t tmpl – после того, как сформирован файл .pro использовать шаблон tmpl дляформирования проекта.
На основе данного шаблона формируются файлы проектовMicrosoft Visual Studio: vcapp – приложение, vclib – библиотека;- r – используется в режиме работы -project и обеспечивается сканирование всехподдиректорий для поиска файлов, включаемых в проект.Примеры запуска qmake:qmake -project – сформировать файл проекта .pro на основании файлов текущейдиректории;qmake – сформировать Makefile на основании файла проекта .pro в текущей директории;Оглавление44qmake app1.pro – сформировать Makefile на основании файла проекта app1.pro;qmake -t vcapp -o app1.vcproj app1.pro – сформировать проект проектов MicrosoftVisual Studio app1.vcproj на основании файла проекта app1.pro.Рассмотрим состав файла проекта с расширением .pro.
Файл проекта является текстовым файлом, содержащим пары переменная-значение (значения). Существуют следующие режимы назначения переменных.Оператор =– присваивает значение переменной:TARGET = myappПроизводится присваивание переменной TARGET значения myapp. Все прежниезначения TARGET будут замещены значением myapp.Оператор += – добавляет новое значение к списку значений переменных:DEFINES += QT_DLLЗначение QT_DLL добавляется в список определений для препроцессора, которыйбудет помещен в формируемый файл Makefile.Оператор -= – удаляет указанное значение из списка значений переменной:DEFINES -= QT_DLLЗначение QT_DLL удаляется из списка определений препроцессора, который будетпомещен в формируемый файл Makefile.Оператор *= – добавляет значение в список значений, но только в том случае, еслиэто значение еще не встречалось, что исключает множественное определение значений:DEFINES *= QT_DLLЗначение QT_DLL будет добавлено в список определений препроцессора, но лишьв том случае, если это значение еще не было определено.Оператор ~= заменяет любое значение в соответствии с указанным регулярным выражением:DEFINES ~= s/QT_[DT].+/QTЗначения в списке значений, начинающиеся с префикса QT_D или QT_T получатпрефикс QT.Основные переменные проекта qmake:•HEADERS – список всех заголовочных файлов (.h) проекта;•SOURCES – список всех .cpp файлов проекта;Оглавление45•FORMS – список всех файлов .ui проекта (т.е.
созданных Qt Designer);•TARGET – имя результата сборки проекта. При необходимости, расширение будетдобавлено автоматически;•DESTDIR – Директория, куда будет помещен результат сборки;•DEFINES – список определений препроцессора;•INCLUDEPATH – список дополнительных директорий, необходимых для включе-ния заголовочных файлов проекта, не указанных в переменной HEADERS;•TEMPLATE – тип собираемого проекта: app – исполняемое приложение, lib – биб-лиотека;•CONFIG – определяет режим сборки проекта.
Например, могут использоваться ре-жимы CONFIG += debug для сборки проекта с отладочной информацией или release дляпроета без неё. Режим qt определяет сборку приложения qt. Режим console – определяетсборку консольного приложения. dll – собрать динамическую библиотеку, staticlib – статическую библиотеку.Пример проекта qmake для сборки приложения с именем ex2.TEMPLATE = appTARGET = ex2CONFIG += qt release# InputHEADERS += dialogex2.hFORMS += ex2.uiSOURCES += dialogex2.cpp ex2.cppБолее подробную информацию см. Qt Assistant.Оглавление46Приложение Б.
Основные классы QtОсновные группы классовПодробное описание классов C++ библиотеки Qt приводится в Qt Assistant.Для удобства работы с документацией, классы разбиты на пересекающиеся группы(Grouped Classes), основные из которых приводятся ниже. В скобках указаны англоязычные названия, используемые в Qt Assistant.-Абстрактные классы-виджеты Abstract Widget Classes – классы, не используемыесами по себе, но обеспечивающие набор функций, которые могут использоваться вклассах потомках.-Классы специальных средств взаимодействия с пользователем Accessibility Classes –предназначены для добавления в приложения элементов интерфейса, облегчающих работу людям с ограниченными возможностями.-Расширенные классы виджеты Advanced Widgets – обеспечивают формированиесложного интерфейса пользователя.-Основные классы виджеты Basic Widgets – основные классы виджеты – элементыуправления – разработаны для непосредственного использования.
Однако некоторыеклассы из группы Abstract Widget Classes являются подклассами этой группы виджетов.-Классы для доступа к базам данных Database Classes – обеспечивают доступ к SQLСУБД.-Классы даты и времени Date and Time Classes – классы обеспечивают работу с датойи временем независимо от операционной системы.-Классы поддержки «рабочего стола» Desktop Environment Classes – обеспечиваютвзаимодействие с «рабочим столом» пользователя и предоставляют средства управления многомониторными системами, а также доступ к стандартным сервисам рабочегостола.-Классы управления «перетаскиванием» Drag And Drop Classes – обеспечивают работус технологией «Drag And Drop», а также необходимые средства для кодирования и декодирования данных.-Классы системного окружения Environment Classes – обеспечивают обработку событий, доступ к системным переменным, интернационализацию,критические секции,блокировки параллельного доступа и пр.-Классы событий Event Classes – позволяют создавать и обрабатывать события.Оглавление47-Классы контейнеры Generic Containers – позволяют формировать сложные динамические структуры данных на основе предлагаемых контейнеров.-Классы графического отображения Graphics View Classes – в рамках так называемогокаркаса графического отображения The Graphics View Framework предоставляют средства для создания интерактивных приложений, содержащих двумерную графику ианимацию.-Классы справочной документации Help System – предоставляют все формы документации в приложении, обеспечивая три уровня детализации: всплывающие подсказки исообщение с строке состояния; режим «Что это»; полноценная документация с возможностью позиционирования по контексту.-Классы компоновки Layout Management – обеспечивают автоматическое выравнивание виджетов.-Классы главного окна и ему сопутствующие Main Window and Related Classes – классы, обеспечивают всё, что необходимо для создания типового главного окна приложения, включая главное окно как таковое, меню и панели инструментов, строку состояния и пр.-Разнообразные вспомогательные классы Miscellaneous Classes – классы, не вошедшиев другие категории.
Среди них средства управления процессами, средства для работы срегулярными выражениями, средства для доступа к переменным приложения и пр.-Классы для работы с графикой, мультимедиа и печати Multimedia, Graphics andPrinting – обеспечивают средства для работы с 2D, OpenGL 3D графикой, кодирование, декодирование и манипуляция со звуком, анимацией, печатью и пр.-Организаторы Organizers – классы, предназначенные для группировки примитивовпользовательского интерфейса. Среди них разделители областей, группы кнопок и пр.-Классы подгружаемых модулей Plugin Classes – классы, позволяющие работать с динамическими библиотеками и так называемыми типовыми подгружаемыми модулямиQt plugins.-Классы для работы со скриптовым языком Qt Scripting Classes – обеспечивают работусо специальным языком – Qt Script, имеющим C++-подобный синтаксис и позволяющим динамически менять работу уже собранного приложения.-Классы стандартных диалогов Standard Dialog Classes – предоставляют классы дляотображения стандартных диалогов выбора имени файла, цвета, типа принтера и пр.-Классы обработки текста Text Processing Classes – предоставляют различные средствадля работы с текстовыми данными и средствами их отображения.Оглавление48-Классы многопотоковой работы Threading Classes – предоставляют возможностьмногопотогового выполнения программы, средства управления и синхронизации.-Классы XML XML Classes – обеспечивают работу с XML-данными с использованиеммоделей DOM и SAX.Основные классы.-QApplication – управляет процессом выполнения приложений с графическим интерфейсом пользователя, а также обеспечивает доступ к основным настройкам.-QMainWindow – класс главного окна.-QDialog – базовый класс для создания диалоговых окон.-QFrame – базовый класс для виджетов, которые имеют рамку.Основные виджеты:-QCheckBox – кнопка с независимой фиксацией и текстовой меткой.-QComboBox – совмещенная кнопка и выпадающий список.-QDateEdit – строка ввода даты с контролем ввода.-QDateTimeEdit – строка ввода даты и времени с контролем ввода.-QDial – круглый регулятор (подобный спидометру или потенциометру).-QLCDNumber – отображение цифр в стиле калькулятора.-QLabel – отображение текста или изображения.-QLineEdit – однострочный текстовый редактор.-QMenu – виджет меню для создания основного, контекстного и всплывающего меню.-QProgressBar – горизонтальный или вертикальный индикатор выполнения.-QPushButton – нажимаемая кнопка.-QRadioButton – круглая кнопка-переключатель с текстовой меткой.-QScrollArea – виджет, позволяющий прокручивать помещенный в него виджет в рамках своих границ отображения.-QScrollBar – вертикальная или горизонтальная полоса прокрутки.-QSlider – вертикальный или горизонтальный ползунок-регулятор.-QSpinBox – виджет для ввода целочисленного значения с редактируемым текстовымполем и двумя стрелочными кнопками увеличения/уменьшения значения.-QDoubleSpinBox – аналогичен QSpinBox, однако вводимое число вещественное.-QTimeEdit – строка ввода времени с контролем ввода.-QToolBox – виджет для создания панели инструментов.-QToolButton – кнопка, размещаемая на виджете QToolBar.Оглавление49-QWidget – базовый класс для всех виджетов.Дополнительные виджеты:-QCalendarWidget – позволяет выбрать дату из календаря с отображением дней месяца.-QColumnView – реализация отображения колонки в соответствии с модельюModel/view.-QListView – виджет отображения списка текстовых или графических элементов.-QTableView – реализация по умолчанию модели model/view для отображения таблицы.-QTreeView – реализация по умолчанию модели model/view для отображения дереваэлементов.-QWebView – виджет для просмотра и редактирования документов HTML.Классы для работы с текстовыми данными:-QByteArray – массив байт.-QByteArrayMatcher – обеспечивает поиск последовательности байт в массиве QByteArray.-QChar – символ в кодировке Unicode-16-bit.-QFont – определяет шрифт для отображения текста.-QFontMetrics – информация о метриках шрифта.-QLatin1Char – символ в кодировке 8-bit ASCII/Latin-1.-QLatin1String – строка из символов в кодировке ASCII/Latin-1-QLocale – средство преобразования чисел и их строковых представлений в различныхязыках.-QString – строка в кодировке Unicode – основное представление строки в Qt.-QStringList – список строк QString.-QStringMatcher – поиск последовательности символов в строке QString.-QStringRef – класс-ссылка на строку QString, позволяющий получить доступ толькодля чтения.-QSyntaxHighlighter – предоставляет средства для формирования синтаксической подсветки строки в соответствии с заданными правилами.-QTextBlock – контейнер фрагментов текста в классе QTextDocument.-QTextBrowser – виджет просмотра текста Rich-text с возможностью гипертекстовойнавигации.Оглавление50-QTextDocument – обеспечивает работу с форматированными текстом, который можетпросматриваться и редактироваться виджетом QTextEdit.-QTextDocumentFragment – представляет фрагмент форматированного текста в классеQTextDocument-QTextEdit – виджет, предназначенный для отображения и редактирования как простого текста, так и текста с разметкой (rich text).-QTextFragment – обеспечивает доступ к фрагменту текста класса QTextDocument сединым режимом форматирования QTextCharFormat.-QTextStream – интерфейс для чтения и записи текстовых данных в файл и различныебуферы.-QTextTable – представление таблицы в классе QTextDocument.Оглавление51Классы контейнеры1.