International conference of developers
and users of free / open source software

Разработка оболочки Kuzya для изучения языков программирования с помощью визуальных компонентов библиотеки Qt 4

Виктор Скляр, Львовский национальный университет имени Ивана Франка

Kuzya – это максимально простая среда для обучения программированию. Именно на простоту делается основной акцент. Сразу же после старта Kuzya студент, не задумываясь ни о чем, может набирать нужный ему код, а сохранив, может скомпилировать и запустить его.

Для удобного и быстрого набора кода в главном меню находятся шаблоны языков программирования.

Создание простого, понятного и приятного пользовательского интерфейса есть немаловажная часть разработки среды Kuzya.

Интерфейс оболочки Kuzya был создан с помощью библиотеки визуальных компонентов Qt4. Это позволяет собрать Kuzya под Windows, Linux и MacOS. Разработка проводилась под операционной системой Linux в среде QtCreator. Qt Creator – новая легкая кроссплатформенная интегрированная среда разработки, которая входит в состав Qt SDK. Пакет Qt Creator IDE очень прост в установке, обеспечивает быструю и оперативную разработку кроссплатформенного программного обеспечения.

Для дизайнерского оформления интерфейса оболочки Kuzya был применен мощный механизм Qt Style Sheets, позволяющий настроить внешний вид элементов управления, в дополнение к тому, что возможно осуществлять с помощью подкласса QStyle. Понятия, термины и синтаксис Qt Style Sheets очень похожи на Каскадные Таблицы Стилей HTML (HTML Cascading Style Sheets, CSS), но с учетом объектов мира графических компонент. Также Qt Style Sheets позволяет выполнять все виды настроек, которые трудно или невозможно выполнить, используя только класс QPalette. Файлы видов, написанные на языке Qt Style Sheets, легко могут быть подключены для изменения оформления интерфейса. Стандартное расширение этих файлов – *. qss.

Kuzya IDE имеет поддержку выбора и расширения языков среды, поскольку Qt4 обеспечивает простоту процесса интернационализации интерфейса с помощью утилит Qt Linguist, LUPDATE, LRELEASE. Благодаря системе компоновки Qt произвольные компоненты пользовательского интерфейса могут автоматически изменять свой размер, чтобы обеспечить место для текста перевода надписей, когда его размеры превышают размеры исходного текста.

В качестве текстового редактора для системы Kuzya была использована Qt-версия компоненты Scintilla (http://scintilla.sourceforge.net) – компонент с открытым исходным кодом для Win32 и GTK+, который разрешено использовать в любых некоммерческих целях. Наряду со свойствами, которыми обладает любой другой текстовый редактор, Scintilla обладает целым рядом свойств особенно полезных для редактирования и отладки кода приложений.

Относительно стилевого оформления Scintilla гораздо более открыт, в отличие от других редакторов, позволяя использовать различные пропорциональные шрифты (курсивные, полужирные), а также большое количество фоновых и переднеплановых цветов.

Scintilla обладает базовым набором лексических анализаторов (lexical analyzer или коротко lexer, «Лексер») языков программирования для их автоматического форматирования.

Существует также возможность подключения внешних лексических анализаторов к редактору которые размещаются в файлах с расширениями *.DLL (Windows) или *.so (для GTK+ / Linux).

Возможность изменения и сохранения настроек оболочки является чрезвычайно важным моментом для пользователей. В разных операционных системах место хранения файлов настроек отличается, равно как и форматы настроек. Для решения этой проблемы и обеспечения кроссплатформенности был использован класс Qsettings библиотеки Qt, который предназначен для работы с настройками.

Материалы к докладу