# GtkD (Русский)

Эта страница нуждается в сопроводителе

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

Информация в этой статье или разделе устарела

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

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.

# Ссылки

- Вебсайт GTK+
- Язык программирования D
- Проект gtkD
- Проект dool

Categories:

- Русский
- Development (Русский)

Hidden category:

- Pages with broken section links