Первые шаги [Vala + Gtk 3]: Hello World !!

В этом небольшом руководстве мы увидим, как сделать наши первые шаги с Vala и GTK3. Давайте начнем:

Установка необходимых инструментов

sudo apt-get install valac libgtk-3-dev

IDE:

Мы можем найти множество редакторов, которые можно использовать / настраивать как IDE. Примером из них являются Scratch, возвышенный текст, Geany … В моем случае я собираюсь использовать Scratch (который мы можем найти в elementary os).

Scratch

Давайте посмотрим на типичный пример Hello World !, который будет выглядеть следующим образом:

Захват от 2013 10:31:23

И код будет выглядеть так:

Захват от 2013 10:31:23

Теперь давайте посмотрим на детали кода. У нас есть класс, который представляет собой окно Gtk.

# Инициализируем Gtk с аргументами Gtk.init (ref args); # Создаем приложение. Приложение app = новое приложение (); # Ставим приложение в центр экрана. app.window_position = Gtk.WindowPosition.CENTER; # При закрытии уничтожаем приложение. app.destroy.connect (Gtk.main_quit); # Измеряем окно app.set_default_size (100, 50); # Создаем кнопку и подключаем событие нажатия кнопки и печатаем привет! var button = new Gtk.Button.with_label ("Сказать привет"); button.clicked.connect (() => {print ("Привет! \ n");}); # Добавить кнопку в приложение app.add (button); # Мы показываем приложение / окно app.show_all ();

Нажав на кнопку, мы получим в результате:

Захват от 2013 10:31:23

Компилируем и выполняем:

$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol

А теперь я оставляю вам несколько интересных ссылок:

http://elementaryos.org/docs/code/the-basic-setup


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   пандев92 сказал

    Проблема с отсутствием ide, который рисует окна, заключается в том, что вы должны знать все методы класса, чтобы создать окно, что-то действительно примитивное.

    1.    нюансированный сказал

      Если бы вы хорошо поработали на этапе проектирования, у вас не было бы причин использовать IDE при программировании.

      1.    пандев92 сказал

        Вы меня не поняли, я говорю о том, что у меня есть идея, которая сделает это за вас, окна, без необходимости вводить код в принципе:

        http://imagebin.org/275532

        Это избавляет вас от знания метода кнопки и т. Д.

        1.    марианогаудикс сказал

          С IDE вы только экономите время …… Но если мы говорим о функциональности при использовании IDE или TERMINAL при компиляции, они оба выполняют одни и те же функции.
          Это вопрос вкуса и комфорта.

        2.    Artus сказал

          Ну у тебя есть Глэйд (https://glade.gnome.org/), это инструмент RAD, который позволяет быстро создавать окна приложений с помощью простых щелчков мыши.

          После создания интерфейса он генерирует файл в формате xml, который можно вызывать из языков программирования, таких как C, C ++, Python, Perl, Vala, Java и т. Д.

          Надеюсь, это ответит на ваш вопрос.

        3.    лолбимбо сказал

          Если есть идея, интегрирующая оконный конструктор, Anjuta IDE.

  2.   Хуан-Пабло сказал

    Привет, Лолбимбо:
    Некоторое время назад я решил использовать Vala в качестве основного языка до D и Golang по x причинам, но я застрял в проблеме, код я скомпилировал очень хорошо, но теперь я получаю следующую ошибку:

    /media/…/vala/nn.vala.c: В функции main:
    /media/…/vala/nn.vala.c:155:2: предупреждение: 'g_type_init' устарел (объявлен в /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declrations]
    g_type_init();

    если это будет слишком сложно, я пойму, заранее спасибо и поздравляю с блогом.

    1.    лолбимбо сказал

      Привет, друг, я начинаю с vala, но передайте мне код, который у вас есть в строке 155, в любом случае это предупреждение, а не ошибка, если он работает для вас, ничего не происходит, так как это может быть ошибка vala.

      1.    Хуан-Пабло сказал

        Привет, Лолимбо, я отмечаю твой энтузиазм, так как я чувствовал себя одиноким в vala, на самом деле ошибка выдается мне в любом простом коде: using Gtk;

        int main (string [] args) {
        Gtk.init (аргументы ссылки);

        var window = новое окно ();
        window.title = "Первая программа GTK +";
        ширина_окна_окна = 10;
        window.window_position = WindowPosition.CENTER;
        window.set_default_size(350, 70);
        window.destroy.connect(Gtk.main_quit);

        var button = new Button.with_label («Нажми меня!»);
        button.clicked.connect (() => {
        button.label = "Спасибо";
        });
        пытаться {
        // Либо прямо из файла ...
        window.icon = новый Gdk.Pixbuf.from_file ("my-app.png");
        //… или из темы
        window.icon = IconTheme.get_default () .load_icon ("мое-приложение", 48, 0);
        } catch (Ошибка e) {
        stderr.printf («Не удалось загрузить значок приложения:% s \ n», e.message);
        }
        window.add (кнопка);
        окно.show_all ();

        Гтк.основной ();
        0 вернуться;
        }

        Но между работой с Windows и дома у меня нет времени выследить ошибку, мне кажется, что это проблема с версиями vala, не знаю.

        1.    лолбимбо сказал

          Обновление vala должно удалить предупреждение.

  3.   урибес сказал

    Учебник хорошо объяснен, и мне он нравится, просто я всегда задавался вопросом, почему всегда начинать с программы "hello world", для новичков это было бы хорошо, но что делать тем, у кого уже есть опыт программирования? Почему бы не указать, как сделать интерфейс из нескольких элементов (кнопок, меток и т. Д.)?

    Мне нравится Вала, и я хочу этому научиться, но было бы более конструктивно начать немного больше «посередине», не так ли?

    1.    лолбимбо сказал

      Скоро еще один пост с промежуточным уровнем.

  4.   Хуанра20 сказал

    Ява?

    Хороший учебник, хорошо объясненный, и все это фактически заставило меня задуматься о включении vala и gtk в свой список для изучения.

  5.   -ик- сказал

    Отлично, теперь я предлагаю учебник Seed (javascript) + Gtk, это было бы довольно интересно, так как это официальный вариант, выбранный проектом Gnome.