GTK и JavaScript
Пример программы
Программа переворачивает введенный текст задом наперед.
Макет интерфейса создан с помощью Glade и имеет следующую структуру:
- GtkWindow (окно программы)
- GtkBox (контейнер, в котором вертикально размещены два элемента)
- GtkScrolledWindow (область прокрутки)
- GtkTextView (редактор текста)
- GtkButton (кнопка «Перевернуть»)
- GtkScrolledWindow (область прокрутки)
- GtkBox (контейнер, в котором вертикально размещены два элемента)
В коде программы загружаем этот макет из файла “reverse.ui”, получаем нужные элементы интерфейса по их идентификаторам и определяем необходимые обработчики событий:
#!/usr/bin/env gjs // Подключение библиотеки GTK3. imports.gi.versions.Gtk = '3.0'; const Gtk = imports.gi.Gtk; // Инициализация GTK. Вместо null могут быть переданы аргументы // командной строки. Gtk.init(null); // Загрузка интерфейса из файла Glade. let builder = new Gtk.Builder(); builder.add_from_file('reverse.ui'); // Нужные далее элементы интерфейса. let window = builder.get_object('window'); let text = builder.get_object('text'); let reverseButton = builder.get_object('reverse_button'); // Возвращает перевернутую строку str. function reverseString(str) { return str.split("").reverse().join(""); } // Обработка нажатия на кнопку. reverseButton.connect('clicked', () => { // GtkTextBuffer хранит текст и связанные с ним аттрибуты. При // использовании однострочного поля ввода GtkEntry можно просто // получить строку, для многострочного ввода с помощью GtkTextView // нужно использовать буфер. let buffer = text.buffer; let str = buffer.get_text(buffer.get_start_iter(), buffer.get_end_iter(), true); buffer.set_text(reverseString(str), -1); }); // Завершение работы при закрытии окна. window.connect('destroy', () => { Gtk.main_quit(); }); // Показать окно. window.show(); // Запустить цикл обработки событий Gtk. Gtk.main();
Запуск программы
Скачать файлы reverse.ui (макет интерфейса) и reverse.js (код программы).
Для запуска можно использовать интерпретатор gjs
:
gjs reverse.js
Или сделать файл программы исполняемым и запустить:
chmod +x reverse.js ./reverse.js
Второй способ возможен за счет того, что в первой строке скрипта указан требуемый интерпретатор.