В этом небольшом руководстве мы увидим, как сделать наши первые шаги с Vala и GTK3. Давайте начнем:
Установка необходимых инструментов
sudo apt-get install valac libgtk-3-dev
IDE:
Мы можем найти множество редакторов, которые можно использовать / настраивать как IDE. Примером из них являются Scratch, возвышенный текст, Geany … В моем случае я собираюсь использовать Scratch (который мы можем найти в elementary os).
Давайте посмотрим на типичный пример Hello World !, который будет выглядеть следующим образом:
И код будет выглядеть так:
Теперь давайте посмотрим на детали кода. У нас есть класс, который представляет собой окно 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 ();
Нажав на кнопку, мы получим в результате:
Компилируем и выполняем:
$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol
А теперь я оставляю вам несколько интересных ссылок:
http://elementaryos.org/docs/code/the-basic-setup
Проблема с отсутствием ide, который рисует окна, заключается в том, что вы должны знать все методы класса, чтобы создать окно, что-то действительно примитивное.
Если бы вы хорошо поработали на этапе проектирования, у вас не было бы причин использовать IDE при программировании.
Вы меня не поняли, я говорю о том, что у меня есть идея, которая сделает это за вас, окна, без необходимости вводить код в принципе:
http://imagebin.org/275532
Это избавляет вас от знания метода кнопки и т. Д.
С IDE вы только экономите время …… Но если мы говорим о функциональности при использовании IDE или TERMINAL при компиляции, они оба выполняют одни и те же функции.
Это вопрос вкуса и комфорта.
Ну у тебя есть Глэйд (https://glade.gnome.org/), это инструмент RAD, который позволяет быстро создавать окна приложений с помощью простых щелчков мыши.
После создания интерфейса он генерирует файл в формате xml, который можно вызывать из языков программирования, таких как C, C ++, Python, Perl, Vala, Java и т. Д.
Надеюсь, это ответит на ваш вопрос.
Если есть идея, интегрирующая оконный конструктор, Anjuta IDE.
Привет, Лолбимбо:
Некоторое время назад я решил использовать 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();
если это будет слишком сложно, я пойму, заранее спасибо и поздравляю с блогом.
Привет, друг, я начинаю с vala, но передайте мне код, который у вас есть в строке 155, в любом случае это предупреждение, а не ошибка, если он работает для вас, ничего не происходит, так как это может быть ошибка vala.
Привет, Лолимбо, я отмечаю твой энтузиазм, так как я чувствовал себя одиноким в 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, не знаю.
Обновление vala должно удалить предупреждение.
Учебник хорошо объяснен, и мне он нравится, просто я всегда задавался вопросом, почему всегда начинать с программы "hello world", для новичков это было бы хорошо, но что делать тем, у кого уже есть опыт программирования? Почему бы не указать, как сделать интерфейс из нескольких элементов (кнопок, меток и т. Д.)?
Мне нравится Вала, и я хочу этому научиться, но было бы более конструктивно начать немного больше «посередине», не так ли?
Скоро еще один пост с промежуточным уровнем.
Ява?
Хороший учебник, хорошо объясненный, и все это фактически заставило меня задуматься о включении vala и gtk в свой список для изучения.
Отлично, теперь я предлагаю учебник Seed (javascript) + Gtk, это было бы довольно интересно, так как это официальный вариант, выбранный проектом Gnome.