GtkD (Русский)
gtkD - это объектно-ориентированная приязка библиотеки GTK+ к языку D, выпускается под лицензией LGPL[broken link: invalid section].
Contents
Необходимые средства разработки
Нам понадобится компилятор dmd от Digital Mars, а также D Shared Software System (DSSS), чтобы установить dlua и собрать нашу программу.
Установим компилятор dmd:
# wget https://aur.archlinux.org/packages/dmd/dmd/PKGBUILD # makepkg -i
А также систему сборки DSSS:
# wget https://aur.archlinux.org/packages/dsss/dsss/PKGBUILD # makepkg -i
Теперь установим gtkD:
# dsss net install gtkd
Если всё прошло успешно, то значит библиотека gtkD установлена корректно.
Проверка работоспособности
В комплекте с gtkD идёт программа GtkDTests. Запустите её:
$ GtkDTests
Если через некоторое время появится окно с заголовком GtkD tests, а внутри будут разделённые вкладками демонстрации элементов управления GTK+ 2.0, то это значит, что всё в порядке.
Программирование с использованием gtkD
Библиотека gtkD очень облегчает процесс разработки на языке D. Это доказывается на примере программы Hello World.
Код напишем на D с использованием gtkD, а собирать будем при помощи программы compd, которая идёт в комплекте с пакетом dool-svn.
// Hello World на gtkD module test.gtkd; // импортируем привязки gtkD import gtk.MainWindow; import gtk.Label; import gtk.GtkD; import std.stdio; /** * Класс HelloGtkD, наследник MainWindow из gtkD. * Реализует диалоговое окно с надписью "Hello World". */ class HelloGtkD: MainWindow { this() { super("GtkD"); setBorderWidth(40); add(new Label("Hello World")); showAll(); } } /** * Функция main(), инициализирует GTK, создаёт и отображает наше * диалоговое окно. */ void main(char [][]args) { Gtk.init(args); new HelloGtkD(); Gtk.main(); }
Код написан, теперь нужно его скомпилировать. Для этого создадим в папке с файлом, содержащим наш код (пусть файл зовётся hello.d), ещё один файл, build.compd, в котором будут указаны правила сборки для программы compd:
# исходная папка . # результирующий исполняемый файл -o hello-gtkd # компилировать промежуточный объектный файл -c # местонахождение заголовочных файлов библиотеки gtkD -I /usr/include/d # библиотека phobos компилятора dmd -l phobos # библиотека gtkD -l gtkd # библиотека линковщика dl -l dl
Теперь соберём нашу программу Hello World:
$ compd
При правильно настроенных компонентах (dmd, dool, gtkD, etc), получим примерно следующий вывод:
arg[0]=compd arg[1]=. arg[2]=-o arg[3]=hello-gtkd arg[4]=-c arg[5]=-I arg[6]=/usr/include/d arg[7]=-l arg[8]=phobos arg[9]=-l arg[10]=gtkd arg[11]=-l arg[12]=dl ExecutorSync.execute= dmd ./hello.d -odobj -op -I/usr/include/d -c -I/home/eveel/dmd/src/phobos ExecutorSync.execute= gcc obj/./hello.o -o hello-gtkd -m32 -lphobos -lgtkd -ldl -m32 -lphobos -lpthread -lm
Итак, теперь если запустить файл hello-gtkd, то появится диалоговое окно с надписью Hello World.
Примечание
Данная статья написана пользователем eveel.