Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Использование библиотек классов Trolltech QT для разработки графического интерфейса пользователя

Покупка
Артикул: 806660.01.99
Доступ онлайн
1 800 ₽
В корзину
Данное учебное пособие написано на основе лекционного материала дисциплины по выбору «Современные языки программирования высокого уровня», читаемой его автором на кафедре «Компьютерные системы и сети» Калужского филиала МГТУ им. Н. Э. Баумана для студентов 3-го и 4-го курсов специальности 230101.65 — «Вычислительные машины, комплексы, системы и сети». Пособие предназначено для студентов, аспирантов и преподавателей высших учебных заведений, а также адресовано всем, кто самостоятельно изучает использование библиотек Trolltech Qt для разработки графического интерфейса пользователя на языке программирования высокого уровня C++.
Винокуров, И. В. Использование библиотек классов Trolltech QT для разработки графического интерфейса пользователя : учебное пособие / И. В. Винокуров. - Москва : МГТУ им. Баумана, 2014. - 352 с. - ISBN 978-5-7038-3898-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/2043306 (дата обращения: 29.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Московский государственный технический университет 
имени Н.Э. Баумана 
Калужский филиал 
 
 
 
 
 
 
 
 
И.В. Винокуров 
 
 
ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ 
КЛАССОВ TROLLTECH QT 
ДЛЯ РАЗРАБОТКИ ГРАФИЧЕСКОГО 
ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ 
 
 
Допущено Учебно-методическим объединением вузов 
по университетскому политехническому образованию 
в качестве учебного пособия для студентов высших учебных 
заведений, обучающихся по направлению подготовки 09.03.01 
«Информатика и вычислительная техника» 
 
 
 
 
 
 
 
 

 

УДК 681.3.06 
ББК 32.973-01 
 
В49 
 
Рецензенты: 
канд. физ.-мат. наук  А.Ю. Лосев; 
канд. физ.-мат. наук  Ф.М. Плотников 
 
Научный редактор: 
д-р техн. наук  Л.Г. Комарцова 
 
 
 
 
Винокуров И. В. 
В49 
 
Использование библиотеки классов Trolltech Qt для разработки 
графического интерфейса пользователя : учебное пособие. — М. : 
Издательство МГТУ им. Н. Э. Баумана, 2014. — 352 с. 
 
 
 
ISBN 978-5-7038-3898-3 
 
 
 
Данное учебное пособие написано на основе лекционного материала 
дисциплины по выбору «Современные языки программирования высокого 
уровня», читаемой его автором на кафедре «Компьютерные системы и сети» Калужского филиала МГТУ им. Н. Э. Баумана для студентов 3-го и 4-го 
курсов специальности 230101.65 — «Вычислительные машины, комплексы, системы и сети». 
 
 
Пособие предназначено для студентов, аспирантов и преподавателей 
высших учебных заведений, а также адресовано всем, кто самостоятельно 
изучает использование библиотек Trolltech Qt для разработки графического 
интерфейса пользователя на языке программирования высокого уровня C++. 
 
 
УДК 681.3.06 
ББК 32.973-01 
 
 
 
 
 
 
 
© Винокуров И.В., 2014 
 
© Издательство МГТУ 
ISBN 978-5-7038-3898-3 
 
им. Н.Э. Баумана, 2014 

ОТ АВТОРА 

Данное учебное пособие посвящено описанию особенностей 
функционирования и использования основных управляющих элементов библиотеки классов Trolltech Qt (в дальнейшем — просто Qt), 
предназначенных для разработки графического интерфейса пользователя на языке программирования высокого уровня C++. 
В учебном пособии описывается работа с реализованными в Qt 
контейнерными элементами и их менеджерами компоновки. Приводится функциональность основных управляющих элементов Qt. 
Рассматриваются особенности их взаимодействия, в том числе 
и с использованием технологии Drag And Drop. Приводятся основные этапы разработки диалоговых окон и приложений, реализующих однодокументный и многодокументный интерфейсы с пользователем. Описывается последовательность создания графического 
интерфейса оконного приложения в среде визуальной разработки 
Qt Designer и его интернационализация в Qt Linguist. Кроме того, 
в данном учебном пособии рассматриваются особенности взаимодействия с базами данных, реализованные в библиотеке классов Qt, 
а также работа с файлами и потоками данных. 
Как показывает опыт преподавания языков программирования 
высокого уровня, исходные коды приложений или их фрагменты 
играют важную, а порой и решающую роль при изучении той или 
иной библиотеки классов. В связи с этим в данном учебном пособии излагается необходимый теоретический материал по основным 
управляющим элементам Qt, вслед за которым приводятся исходные коды небольших приложений, использующих ту или иную их 
функциональность. Все примеры приложений, приведенные в данном учебном пособии, разработаны в интегрированной среде разработки приложений Microsoft Visual Studio 2008 с использованием 
библиотеки классов Qt версии 4.5 и протестированы в операционных системах Microsoft Windows XP и GNU/Linux (Ubuntu). 
Учебное пособие ориентировано на читателя, достаточно хорошо владеющего языком программирования C++ и имеющего представление об особенностях разработки оконных приложений в со
временных операционных системах. Поскольку данное учебное 
пособие содержит достаточно большое число примеров приложений и содержит описания наиболее часто используемых свойств 
и методов классов библиотеки Qt, оно может рассматриваться и как 
краткое справочное руководство по этой библиотеке. 

ВВЕДЕНИЕ 

Библиотека классов Qt предназначена для разработки консольных и оконных приложений на языке программирования С++ для 
таких операционных систем, как Microsoft Windows, MacOS, GNU/ 
Linux, UNIX и некоторых других. 
Библиотека Qt разработана норвежской фирмой Trolltech. Название этой библиотеки классов определило первоначальное название фирмы — Quasar Technologies. Первая версия библиотеки 
классов Qt вышла в 1996 г. В апреле 1997 г. вышла версия 1.2, достаточно быстро ставшая стандартным средством при разработке 
графического интерфейса пользователя в графических средах операционной системы GNU/Linux. В июне 1999 г. вышла вторая версия этой библиотеки, а в 2001 г. — третья. Третья версия Qt позволяла создавать приложения не только для GNU/Linux, но и для таких операционных систем, как Microsoft Windows, MacOS и UNIX. 
Летом 2005 г. вышла четвертая версия библиотеки классов Qt, являющаяся на момент написанная данного учебного пособия последней. По сравнению с предыдущими, эта версия значительно 
дополнена и переработана — она состоит из более чем 500 классов 
и 9000 функций, позволяющих не только создавать оконные приложения, но и работать с 2D- и 3D-графикой, сетью, базами данных, встроенными системами и т. д. 
Библиотека классов Qt достаточно хорошо продумана и организована, в связи с чем её использование для разработки оконных 
приложений современных операционных систем постоянно возрастает. 
Последовательность создания оконных приложений с использованием библиотеки классов Qt заключается в последовательной реализации следующих основных этапов: 

♦ создание приложения, его главного и дочерних окон; 
♦ ассоциирование с окнами приложения контейнерных элементов, управляемых теми или иными менеджерами компоновки; 
♦ расположение на контейнерных элементах всех необходимых 
для работы приложения управляющих элементов; 
♦ и, наконец, связывание сообщений от управляющих элементов с функциями, реализующими их обработку. 
В большинстве случаев управляющие элементы окна являются 
его визуальными компонентами. В терминологии Qt последние 
получили название виджеты (от англ. visual gadget — «визуальный 
компонент»). Сообщения от виджетов и обрабатывающие их функции называются в Qt сигналами и слотами соответственно. 
 

ГЛАВА 1. 
 
QT-ПРИЛОЖЕНИЕ И ЕГО ГЛАВНОЕ ОКНО 

1.1. 
QT-ПРИЛОЖЕНИЕ 

Qt-приложение реализовано в классе QApplication. Этот класс 
продекларирован в заголовочном файле QApplication, подключение 
которого к приложению осуществляется привычным для языка программирования С++ способом: 
 
#include <QApplication>. 
 
Основными конструкторами класса QApplication являются следующие: 
 
QApplication (int& argc, char** argv); 
QApplication (int& argc, char** argv, bool GUIenabled = true). 
 
Первый конструктор используется для создания экземпляра приложения, которому передается массив строковых констант argv. Количество элементов в этом массиве определяется значением аргумента argc. Второй конструктор, помимо аргументов argc и argv, 
позволяет задавать и тип приложения. Если значение аргумента 
GUIenabled равно true, то приложение является оконным, в противном случае — консольным. 
В классе QApplication реализованы свойства, методы, сигналы 
и слоты. Основные свойства класса QApplication приведены в табл. 1.1. 

Таблица 1.1 
Основные свойства класса QApplication 

Свойство класса QApplication 
Назначение свойства 

layoutDirection  
Направление расположения виджетов
в приложении 

styleSheet 
Стиль CSS, используемый для отображения виджетов приложения 

windowIcon 
Иконка приложения 

В табл. 1.2 приведены основные методы класса QApplication. 

Таблица 1.2 
Основные методы класса QApplication 

Метод класса QApplication 
Назначение метода 

void setLayoutDirection 
(LayoutDirection direction) 

Устанавливает значение свойства прило- 
жения layoutDirection. Допустимыми значениями аргумента direction являются следующие предопределенные константы: 
Qt::LeftToRight — виджеты располагаются
слева направо (значение по умолчанию); 
Qt::RightToLeft — виджеты располагаются 
cправа налево 

LayoutDirection 
layoutDirection () 
Возвращает значение свойства приложе- 
ния layoutDirection 

QString styleSheet () const 
Возвращает значение свойства приложе- 
ния styleSheet 

void setWindowIcon (const
QIcon& icon)  
Устанавливает значение свойства прило- 
жения windowIcon в icon 

QIcon windowIcon () 
Возвращает значение свойства приложе- 
ния windowIcon 

static QWidgetList 
allWid-gets () 
Возвращает список всех дочерних виджетов приложения 

static int exec () 
Выполняет приложение 

Таблица 1.3 
Основные слоты класса QApplication 

Слот класса QApplication 
Назначение слота 

void aboutQt () 
Отображает небольшое окно с инфор- 
мацией о библиотеке классов Qt 

void setStyleSheet 
(const QString& sheet) 

Устанавливает значение свойства прило- 
жения styleSheet в sheet. Пример исполь- 
зования этого метода приведен в п. 4.21 

 
Основным сигналом класса QApplication является сообщение 
о перемещении фокуса ввода с одного виджета на другой: 
 
void focusChanged (QWidget* old, QWidget* now). 

Аргументы old и now этого метода определяют виджет, получивший фокус ввода и потерявший его соответственно. 
Основными слотами класса QApplication являются его следующие методы (табл. 1.3). 

1.2. 
ГЛАВНОЕ ОКНО 

Базовым классом для всех виджетов Qt является класс QWidget. 
Декларация этого класса реализована в подключаемом к приложению заголовочном файле с аналогичным названием. Класс QWidget 
имеет следующий конструктор: 
 
QWidget (QWidget* parent = 0, WindowFlag flags = 0). 
 
Аргумент parent представляет собой указатель на родительский 
виджет. Если значением этого аргумента является 0, то созданный 
виджет будет представлять собой окно приложения, в том числе 
и главное. Аргумент flags определяет параметры (флаги) отображения и поведения виджета. Значениями этого аргумента должна 
быть либо одна из следующих предопределенных констант либо их 
комбинация по ИЛИ: 
♦ Qt::Widget — обычный виджет; 
♦ Qt::Window — окно с рамкой и заголовком; 
♦ Qt::Dialog — диалоговое окно; 
♦ Qt::Popup — окно верхнего уровня; 
♦ Qt::Tool — инструментальное окно; 
♦ Qt::ToolTip — окно всплывающей посказки; 
♦ Qt::SplashScreen — окно экранной заставки; 
♦ Qt::Desktop — главное окно приложения с многодокументным интерфейсом; 
♦ Qt::MSWindowsFixedSizeDialogHint — окно с тонкой рамкой, 
фиксирующей размеры диалогового окна; 
♦ Qt::FramelessWindowHint — окно без рамки; 
♦ Qt::WindowTitleHint — окно с заголовком; 
♦ Qt::WindowSystemMenuHint — окно с системным меню; 
♦ Qt::WindowMinimizeButtonHint — окно с системной кнопкой 
минимизации; 

♦ Qt::WindowMaximizeButtonHint — окно с системной кнопкой 
максимизации; 
♦ Qt::WindowMinMaxButtonsHint — окно с системными кнопками минимизации и максимизации; 
♦ Qt::WindowContextHelpButtonHint — окно с системной кнопкой контекстной справки; 
♦ Qt::WindowStaysOnTopHint — окно, располагающееся поверх 
всех остальных окон. 
В классе QWidget реализованы свойства, методы, сигналы и слоты, определяющие особенности его отображения и поведения. Основные свойства класса QWidget приведены в табл. 1.4. 

Таблица 1.4 
Основные свойства класса QWidget 

Свойство класса QWidget 
Назначение свойства 

acceptDrops 

Возможность реализации операции 
вставки объекта с использованием тех- 
нологии Drag And Drop: true — операция 
разрешена; false — операция запрещена 

Cursor 
Определяет форму курсора виджета 

Enabled 
Доступность виджета: true — виджет 
доступен; false — виджет недоступен 

Font 
Шрифт виджета 

Height 
Высота виджета в пикселях 

Width 
Ширина виджета в пикселях 

sizeHint 
Оптимальный размер виджета для 
текущего размера окна приложения 

Modal 
Тип окна виджета: true — окно виджета 
является модальным; false — окно 
виджета является немодальным 

toolTip 
Текст всплывающей подсказки виджета 

Visible 
Видимость виджета: true — виджет 
видим; false — виджет невидим 

windowTitle 
Заголовок виджета 

windowIcon 
Иконка виджета 

styleSheet 
Стиль CSS виджета 

minimumSize 
Минимальный размер виджета в пикселях 

maximumSize 
Максимальный размер виджета в пикселях 

В табл. 1.5 приведены основные методы класса QWidget. 

Таблица 1.5 
Основные методы класса QWidget 

Метод класса QWidget 
Назначение метода 

1 
2 

void setAcceptDrops (bool 
accept) 
Устанавливает значение свойства 
виджета acceptDrops в accept 

bool acceptDrops () const 
Возвращает значение свойства виджета 
acceptDrops 

void setCursor (const 
QCursor& cursor) 

Устанавливает значение свойства вид- 
жета cursor. Основными значениями 
аргумента cursor являются следующие 
предопределенные константы: 
Qt::ArrowCursor 
 
Qt::ForbiddenCursor 
 
Qt::CrossCursor 
 
Qt::WaitCursor 
 
Qt::IBeamCursor 
 
Qt::PointingHandCursor 
 
 

QCursor cursor () const 
Возвращает значение свойства виджета 
cursor 

bool isEnabled () const 
Возвращает значение свойства виджета 
enabled 

void setFont (const 
QFont& font) 
Устанавливает значение свойства вид- 
жета font в font 

const QFont& font () const 
Возвращает значение свойства виджета 
font 

int height () const  
Возвращает значение свойства виджета 
height 

int width () const 
Возвращает значение свойства виджета 
width 

virtual QSize sizeHint () const 
Возвращает значение свойства виджета 
sizeHint 

void setWindowModality 
(WindowModality 
windowModality) 

Устанавливает тип окна. Если значением
аргумента windowModality является 
Qt::WindowModal, то окно будет 
модальным, если Qt::NonModal — 
немодальным 

Доступ онлайн
1 800 ₽
В корзину