Введение
1 Особенности библиотеки TXLib 8
2 Обзор возможных средств переносимой реализации TXLib и его выбор 10
2.1 Возможные библиотеки, обеспечивающие реализацию интерфейса
TXLib 10
2.1.1 Библиотека Qt Library 10
2.1.2 Библиотека Juce 12
2.1.3 Библиотека Fox Toolkit 13
2.1.4 Библиотека FLTK 14
2.1.5 Библиотека wxWidgets 15
2.1.6 Библиотека GTK+ 16
2.2 Выбор библиотеки для реализации интерфейса TXLib 17
2.3 Средства библиотеки Qt, используемых для реализации QTXLib 18
3 Разработка графической библиотеки QTXLib 20
3.1 Программный интерфейс библиотеки и связь с Qt 20
3.2 Особенности реализации 24
3.2.1 Завершение главной функции 24
3.2.2 Работа с несколькими окнами 25
3.2.3 Обработка событий 26
3.2.4 Построение диалоговых окон 28
3.2.5 Использование определений из Qt 32
3.2.6 Использование шрифтов 32
3.3 Архитектура библиотеки QTXLib 33
3.4 Общая структура приложений, использующих QTXLib 34
3.5 Компиляция библиотеки и ее использование с программами
пользователей 35
3.6 Использование среды разработки Qt Creator для создания
графических приложений, использующих qtxLib 37
3.6.1 Создание библиотеки QTXLib с использованием Qt Creator 37
3.6.2 Создание приложения с использованием QTXLib в Qt Creator 42
4 Применение библиотеки QTXLib для разработки прикладных
программ. Примеры использования. Перспективы развития библиотеки 49
Заключение 51
Список использованных источников 52
Приложение
Одной из важных задач при обучении программированию является обеспечение наглядности отображения результатов работы программ, их удобное взаимодействие с конечным пользователем. Графические элементы оформления программ делают процесс обучения более наглядным и интересным. На сегодняшний день существует целый ряд средств графического оформления, однако современные графические библиотеки, как правило, достаточно громоздки, сложны для новичков, имеют высокий порог вхождения, что не позволяет использовать их на начальном этапе обучения программированию [1]. Очень часто это мешает начинающим программистам сконцентрироваться на решении основной задачи, вынуждает их тратить дополнительное время и силы на ее графическую визуализацию.
Среди существующего многообразия средств графического оформления особого внимания заслуживает библиотека «The Dumb Artist Library» (TX Library, TXLib), ориентированная, прежде всего, на обучение программированию и на новичков. Она была создана с целью помочь начинающим в изучении простейших принципов программирования. Философия TX Library - облегчить первые шаги в программировании и подтолкнуть к творчеству и самостоятельности [1]. Она проста в освоении, компактна, работать с ней легко и удобно даже непрофессионалам. При всех достоинствах TXLib, у нее все же есть недостаток, который в современном мире разнообразия устройств, платформ и операционных систем становится все более существенным: реализация TXLib такова, что библиотека работает только под управлением операционной системы Microsoft Windows. Таким образом, при всей массе достоинств ее невозможно использовать на других операционных системах. Вместе с тем, по мере того как различные портативные и мобильные устройства внедряются в образовательный процесс, а свободные операционные системы находят широкое применение, переносимость библиотек с одной операционной системы на другую и их платформенная независимость играет все более существенную роль. Поэтому актуальной является задача создания графической библиотеки, обеспечивающей первоначальное обучение программированию на разнообразных аппаратно¬программных платформах.
В связи с вышесказанным для организации эффективного обучения на различных платформах необходима графическая библиотека, сочетающая в себе, с одной стороны, кроссплатформенность, гибкость и разнообразие возможностей, а с другой, легкость, простоту понимания и использования.
Использование начинающими программистами этой библиотеки в своих программах освободило бы их от преждевременных ненужных сложностей, ускорило разработку их проектов, а также послужило важным подготовительным этапом на пути ознакомления с более сложными средствами разработки графических приложений.
Целью выпускной квалификационной работы является разработка переносимой графической библиотеки, сочетающей в себе разнообразие возможностей по созданию простых графических приложений и простоту использования, что позволило бы применять ее на начальных этапах обучения программированию.
Для достижения поставленной цели в работе решались следующие задачи:
• на основе изучения и анализа существующих графических библиотек проведен выбор средств, используемых для реализации проекта;
• проведено согласование интерфейса библиотеки TXLib с интерфейсом библиотеки Qt, выбранной для разработки в ходе проведенного анализа;
• разработана кроссплатформенная графическая библиотека QTXLib, реализующая основные функции библиотеки TXLib;
• рассмотрены различные методы подключения разработанной библиотеки к программе пользователя;
• проведено тестирование совместимости исходной и разработанной библиотек на уже существующих примерах;
• разработан ряд собственных примеров использования библиотеки.
Результатом выполнения выпускной квалификационной работы является переносимая библиотека QTXLib, написанная на базе кроссплатформенного инструментария Qt, подключение к программе пользователя которой может осуществляться с применением различных режимов.
Первый раздел выпускной квалификационной работы раскрывает общее описание графической библиотеки TXLib и ее функциональные возможности,
Второй раздел посвящен краткому описанию кроссплатформенного инструментария Qt на основе которого реализуется проект.
В третьем разделе рассматривается непосредственное построение библиотеки QTXLib, раскрывается ее внутренняя архитектура и особенности реализации, а также использование и компоновка с программами конечного пользователя.
В четвертом разделе рассматривается применение библиотеки для разработки прикладных программ на конкретных примерах, а также рассматриваются перспективы дальнейшего развития библиотеки QTXLib.
В рамках выпускной квалификационной работы создана переносимая библиотека, сочетающая разнообразие возможностей по созданию простых графических приложений и простоту использования, что позволяет применять ее на начальных этапах обучения программированию.
Для достижения поставленной цели в ходе выполнения работы были решены следующие задачи:
• на основе изучения и анализа существующих графических библиотек проведен выбор средств, используемых для реализации проекта;
• изучены особенности библиотеки TXLib;
• проведено согласование интерфейса библиотеки TXLib с интерфейсом библиотеки Qt, выбранной для разработки в ходе проведенного анализа;
• сформирована концепция (стратегия) по реализации библиотеки с использованием Qt;
• реализована переносимая библиотека QTXLib, написанная на базе кроссплатформенного инструментария Qt;
• подробно описана ее архитектура и особенности реализации, рассмотрено ее подключение к программам пользователя;
• рассмотрены подробные примеры использования созданной библиотеки и возможные перспективы ее дальнейшего развития - включение в библиотеку дополнительных полезных функций - элементов диалога, средств автоматического размещения и компоновки элементов (layouts), простую возможность реализации многопоточных вычислений и многие другие.
1. The Dumb Artist Library, (TX Library, TXLib) [Электронный ресурс] : описание графической библиотеки TXLib. — Режим доступа: http://ded32.net.ru/load/1-1-0-4
2. Qt документация [Электронный ресурс] : документация инструментария Qt. - Режим доступа: http://doc.crossplatform.ru/qt/
3. Официальный сайт инструментария Juce [Электронный ресурс] : документация по библиотеке Juce. - Режим доступа: http://www.juce.com/
4. Официальный сайт графической библиотеки Fox toolkit [Электронный ресурс] : документация по библиотеке Fox toolkit. - Режим доступа: http://www.fox-toolkit.org/
5. Официальный сайт графической библиотеки FLTK [Электронный ресурс] : документация по библиотеке FLTK. - Режим доступа: http://www.fltk.org/
6. Официальный сайт инструментария wxWidgets [Электронный ресурс] : документация по библиотеке wxWidgets. - Режим доступа: https://www.wxwidgets.org/
7. Официальный сайт проекта GTK+ [Электронный ресурс] : документация по библиотеке GTK+. - Режим доступа: http://www.gtk.org/
8. Русскоязычный форум инструментария Qt [Электронный ресурс] : документация по библиотеке Qt. - Режим доступа: http://www.prog.org.ru/index.php?action=forum
9. Особенности Qt [Электронный ресурс] : особенности практического применения. - Режим доступа: http://cppstudio.com/post/11167/
10. Система рисования Qt [Электронный ресурс] : полный обзор - Режим доступа: http://doc.crossplatform.ru/qt/4.5.0/paintsystem.html
11. Обзор графической библиотеки Juce [Электронный ресурс] : документация по библиотеке Juce. - Режим доступа: https://ru.wikipedia.org/wiki/Juce
12. Обзор графической библиотеки Fox Toolkit [Электронный ресурс] : документация по библиотеке Fox toolkit. - Режим доступа: https://ru.wikipedia.org/wiki/FOX_toolkit
13. Обзор графической библиотеки FLTK [Электронный ресурс] : документация по библиотеке FLTK. Режим доступа: https://ru.wikipedia.org/wiki/FLTK
14. JUCE — Кроссплатформенный C++ фреймворк для разработки приложений с пользовательским интерфейсом [Электронный ресурс] : документация по библиотеке JUCE. - Режим доступа: http://habrahabr.ru/post/209956/
15. Stroustrup, B., Programming principles and practice using C++, 2nd edition, «Pearson Education, Inc.», 2014 - 1272 c.
16. Документация по библиотеке wxWidgets [Электронный ресурс] : документация по библиотеке wxWidgets. - Режим доступа: http://www.doc.crossplatform.ru/wxwidgets/2.8.9/
17. Бланшет, С., Qt4 Программирование GUI на С++ - 2-ая ред., «КУДИЦ- пресс», 2008 - 892 с.
18. Боровский, А. Qt4.7+. Практическое программирование на C++, «БХВ-Петербург», 2012 - 496 с.
19. Саммерфилд, М., Qt Профессиональное программирование, «Символ- плюс», 2011 - 745 с.
20. Шлее, М. Qt 5.3. Профессиональное программирование на C++ (в подлиннике), «БХВ-Петербург», 2015 — 928 c.
21. Шлее, М. Профессиональное программирование на C++. +CD. Qt 4.8 (в подлиннике), «БХВ-Петербург», 2012 - 912 с.
22. Разделяемые библиотеки в linux [Электронный ресурс] : сборка и использование статических и динамических библиотек в linux — Режим доступа: https://www.opennet.ru/base/dev/shared_lib_intro.txt.html.
23. Shared libraries with GCC on Linux, [Электронный ресурс] : статья — Режим доступа: http://www.cprogramming.com/tutorial/shared-libraries-gcc.html
24. Организация исходников C++ [Электронный ресурс] : краткий обзор — Режим доступа: https://toster.ru/q/12136
25. Структура и организация проектов C++ [Электронный ресурс] : практическое применение организации сложных проектов — Режим доступа: http://eao197.narod.ru/desc/prj_struct.htm
26. Структура исходников сложного проекта C++ [Электронный ресурс]: обзор практического использования в работе — Режим доступа: https://www.linux.org.ru/forum/development/7560710
27. Официальный сайт инструментария Qt [Электронный ресурс]: домашняя страница проекта — Режим доступа: http://qt.io/ru
28. Официальный сайт Skype [Электронный ресурс]: домашняя страница проекта — Режим доступа: https://skype.com
29. Официальный сайт VirtualBox [Электронный ресурс]: домашняя страница проекта — Режим доступа: https://virtualbox.com
30. Официальный сайт KDE [Электронный ресурс]: домашняя страница проекта — Режим доступа: https://kde.org
31. Использование мета-объектного компилятора [Электронный ресурс]: QT Meta Object Compiler (MOC) — Режим доступа: http://doc.crossplatform.ru/qt/4.6.x/moc.html
32. Сайт Б. Страуструпа - американского профессора компьютерных наук, автора многих книг по программированию на C++ [Электронный ресурс]: домашняя страница — Режим доступа: http://www.stroustrup.com/
33. Официальный сайт FileZilla [Электронный ресурс]: домашняя страница проекта — Режим доступа: https://filezilla-project.org
34. Официальный сайт Audacity [Электронный ресурс]: домашняя страница проекта — Режим доступа: https://audacityteam.org
35. Официальный сайт Bittorent [Электронный ресурс]: домашняя страница проекта — Режим доступа: http://bittorent.com
36. Официальный сайт GNOME [Электронный ресурс]: домашняя страница проекта — Режим доступа: https://gnome.org