У цьому маленькому посібнику ми побачимо, як зробити перші кроки з Vala та GTK3. Давайте розпочнемо:
Встановлення необхідних інструментів
sudo apt-get install valac libgtk-3-dev
IDE:
Ми можемо знайти безліч редакторів, які ми можемо використовувати / налаштувати як IDE. Прикладом їх є Подряпина, SublimeText, Geany ... У моєму випадку я буду використовувати Scratch (яку ми можемо знайти в елементарних ос).
Давайте побачимо типовий приклад Hello World!, Який буде таким:
І код буде виглядати так:
Тепер давайте подивимося деталі коду. У нас є клас, який є вікном Gtk.
# Ініціалізуємо Gtk аргументами Gtk.init (ref args); # Ми створюємо додаток. Додаток програми = новий додаток (); # Програму розміщуємо в центрі екрана. app.window_position = Gtk.WindowPosition.CENTER; # При закритті ми знищуємо додаток. app.destroy.connect (Gtk.main_quit); # Вимірюємо вікно app.set_default_size (100, 50); # Ми створюємо кнопку та підключаємо подію натискання кнопки та друкуємо привіт! кнопка var = new Gtk.Button.with_label ("Скажи привіт"); button.clicked.connect (() => {print ("Привіт! \ n");}); # Додати кнопку в додаток app.add (кнопка); # Ми показуємо додаток / вікно app.show_all ();
Натиснувши на кнопку, ми отримаємо як результат:
Ми компілюємо та виконуємо:
$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol
Тепер я залишаю вам кілька цікавих посилань:
http://elementaryos.org/docs/code/the-basic-setup
Проблема відсутності ідеї для малювання вікон полягає в тому, що ви повинні знати всі методи класу, щоб створити вікно, щось примітивне, насправді.
Якби ви добре виконали свою роботу на етапі проектування, у вас не було б причин використовувати IDE під час програмування.
Ви мене не зрозуміли, я говорю про те, що у вас є ідея, яка зробить це за вас, вікна, без принципового введення коду:
http://imagebin.org/275532
Це позбавляє вас від знання методу роботи кнопки тощо
За допомогою IDE ви лише економите час …… Але якщо говорити про функціональність при використанні IDE або терміналу при компіляції, вони обидва виконують однакові функції.
Це питання смаку та комфорту.
Ну у вас є Поляна (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-proglaси]
g_type_init();
якщо це занадто багато проблем, я зрозумію, заздалегідь дякую і вітаю в блозі.
Привіт, друже, я починаю з vala, але передай мені код, який ти маєш у рядку 155, у будь-якому випадку це попередження, а не помилка; якщо це працює для тебе, нічого не відбувається, оскільки це може бути помилка vala.
Привіт Лолімбо, я відзначаю твій ентузіазм, оскільки я почувався самотньо в Валі, насправді помилка дає мені будь-який простий код, такий як: використання Gtk;
int main (рядок [] args) {
Gtk.init (посилання на аргументи);
var window = нове вікно ();
window.title = "Перша програма GTK +";
window.border_width = 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 = "Дякую";
});
try {
// Або безпосередньо з файлу ...
window.icon = new Gdk.Pixbuf.from_file ("my-app.png");
// ... або з теми
window.icon = IconTheme.get_default () .load_icon ("my-app", 48, 0);
} catch (Помилка e) {
stderr.printf ("Не вдалося завантажити піктограму програми:% s \ n", напр. повідомлення);
}
window.add (кнопка);
window.show_all();
Gtk.main();
0 повернутися;
}
Але між роботою з Windows і вдома я не даю собі часу на виявлення помилки, мені здається, це проблема з версіями vala, я не знаю.
Оновлення vala має видалити попередження.
Підручник добре розтлумачений, і мені це подобається, лише те, що я завжди дивувався, чому завжди починати з програми "hello world", для початківців це було б непогано, але що з тих, хто вже має досвід програмування? Чому б не вказати, як зробити інтерфейс з кількома елементами (кнопки, мітки тощо)?
Мені подобається Вала, і я хочу навчитися цьому, але було б більш конструктивно починати трохи більше "в проміжку", так?
Незабаром ще одна посада з середнім рівнем.
Java?
Гарний підручник добре пояснений, і все насправді змусило мене задуматися про включення vala та gtk до мого списку для вивчення.
Чудово, зараз я пропоную навчальний посібник Seed (javascript) + Gtk, це було б досить цікаво, оскільки це офіційний варіант, який обрав проект Gnome.