Введение
О библиотеках. Необходимой областью имён (namespace) будет Gtk. Для добавления нового пространства имён надо использовать команду "using".
Пример Кода
Сам код примера, после кода я объясню кратенько что, да как.
GUISimple1.vala
using Gtk;
public class GUISimple1 {
private static void action_function(Button source) {
// Задаём новое название кнопке
source.label = "Кнопка была нажата";
}
public static int main(string[] args) {
// Инициализация GTK
Gtk.init (ref args);
// Создание переменной-окна
var window = new Window(WindowType.TOPLEVEL);
// Задаём заголовок окна
window.title = "Программа, Програмочка моя";
// Задаём размер окна
window.set_default_size (300, 50);
// Задаём положение на экране
window.position = WindowPosition.CENTER;
// Эта строка задаёт выключение программы по нажати на "выход"
window.destroy.connect(Gtk.main_quit);
// Создаём переменную-кнопку
var button = new Button.with_label("Нажмите, Или не жмите... Как хотите :)");
// Задаём функцию, которая будет выполнятся по нажати на кнопку
button.clicked.connect(action_function);
// Вставляем кнопку в окно, важно: в один контейнер можно вставить только один объект
window.add(button);
// Показать окно
window.show_all();
// Цикл GTK
Gtk.main();
return 0;
}
}
Разбор полётов
using - Это команда добавления пространства имён, эквивалент в "Java" - "import".
Gtk - Это название пространства имён которое будет нам нужно для создания окон (Присоединение библиотеки Gtk+-3.0).
Button - Это название класса-кнопки.
Gtk.init (ref args) - Эта строка с функцией инициализацией библиотеки GTK. (Подготовка к использованию библиотеки GTK).
var window = new Window(WindowType.TOPLEVEL) - Эта строка создаёт переменную с окном (С самыми простыми параметрами).
window.destroy += Gtk.main_quit - Эта строка указывает - какая функция должна выполняться при событии "destroy" (Это событие происходит при закрытие окна). Здесь " += " - это специальный оператор который означает "подключение", то есть с помощью него вы указываете имя функции которую хотите использовать по происхождении сего события. Важно не писать скобочек после указания имени функции (Здесь происходит делегирование функции).
var button = new Button.with_label("Нажмите, Или не жмите... Как хотите :)") - Создание кнопки с названием.
window.add(button) - Вставляем созданную кнопку в окно
window.show_all() - Функция, при выполнении которой появляется окно.
Gtk.main() - Запуск основного цикла окна (Необходимо использовать как аксиому)
Умозаключения
Для компиляции программы нужно использовать пакет gtk+-3.0.
Компиляция: "valac --pkg gtk+-3.0 GUISimple1.vala"
В свете новых решений парти:
ОтветитьУдалитьwindow.destroy.connect(Gtk.main_quit);
button.clicked.connect(action_function);
ибо компайлер пишет, что += есть деприкейтед
vala-0.14.2-3.fc16
Спасибо большое! Да, я скоро обновлю статьи, есть много новых изменений которые стоит учесть, следуя тому что появились библиотеки gtk+-3.0.
УдалитьЕщё раз спасибо!