GtkD (Русский)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Tango-dialog-warning.pngИнформация в этой статье или разделе устарелаTango-dialog-warning.png

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

gtkD - это объектно-ориентированная приязка библиотеки GTK+ к языку D, выпускается под лицензией LGPL[broken link: invalid section].

Необходимые средства разработки

Нам понадобится компилятор 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.


Ссылки