Редактор интерфейса Glade

Glade — это бесплатная программа для визуального создания интерфейса на основе кроссплатформенной библиотеки GTK+.

В любой программе необходимо создавать множество окон для взаимодействия с пользователям. Теоретически, все эти окна можно создать и отладить прямо в тексте программы, но это очень трудоемкое занятие. Для визуального создания окон и размещения виджетов обычно используется редактор интерфейса. Glade – это очень удобный и популярный редактор, который позволяет размещать виджеты GTK+ с помощью мыши.Особенностью редактора Glade является то, что пользовательские интерфейсы, разработанные в Glade, сохраняются в формате XML. Затем они могут загружены в приложение динамически с помощью объекта GtkBuilder. Формат XML понятен для человека, поэтому программист может при необходимости быстро внести изменения непосредственно в файл Glade.

Файлы Glade XML могут использоваться на многих языках программирования, включая C, C++, C#, Java, Perl, Python и другие.

Запуск Glade

Редактор Glade входит с состав сборки Си-экспресс. Для запуска нужно дважды щелкнуть на файле:

C:\Prog\Glade\bin\glade-3.exe

откроется окно программы:

Окно программы разделено на три части. Слева находится список виджетов. В центре находится создаваемый интерфейс. Справа – свойства виджетов.

Работа с Glade

Перед началом работы нужно понять важный принцип библиотеки GTK+ – контейнеры для виджетов. Самая трудоемкая часть разработки интерфейса – это выравнивание и упорядочение виджетов внутри окна. Для этой цели в GTK+ используются контейнеры, которые выравнивают помещенные в них виджеты автоматически. Посмотрим, как это выглядит.

Шаг 1. Нажимаем на виджет “Окно”.

На экране появляется главное окно программы.

Шаг 2. Нажимаем на виджет “Вертикальный контейнер”

Появляется окно с вопросом, сколько элементов в контейнере.

Предположим, что три элемента.

Шаг 3. Добавляем виджеты

Для добавления виджета в контейнер нужно сначала щелкнуть на виджет, а потом на нужное место контейнера.

Добавляем последовательно три виджета. :

  • Строка меню
  • Записная книжка
  • Горизонтальный контейнер

Да, контейнер можно размещать внутри контейнера. В нижний контейнер добавим три виджета “Кнопка”.

Вот так быстро мы набросали интерфейс. При необходимости в правом меню мы можем задать названия элементов и другие свойства.

Шаг 4. Сохранить интерфейс

Нажмите “Файл – Сохранить” и дайте файлу имя “main.glade”. Можно открыть это файл и убедиться, что это обычный XML-файл. Ниже фрагмент этого файла.

Шаг 5. Подключение к программе

Рассмотрим фрагмент программы для подключения интерфейса Glade:

В этом фрагменте текста программы показан общий принцип подключения:

  1. Создать объект GtkBuilder
  2. Загрузить файл Glade в этот объект.
  3. Загрузить сигналы Glade в сигналы программы
  4. Отобразить объект

После загрузки файла Glade в программу все виджеты могут использоваться точно также, как любые виджеты GTK+.

Официальный сайт (eng): glade.gnome.org

Комментарии 6

  • Очень интересно. Но могли бы вы посоветовать какую-нибудь книгу с описанием работы с сигналами для кнопок, какой сигнал что конкретно делает?

    • Все сигналы для виджетов описаны в документации http://www.opennet.ru/docs/RUS/gtk_plus/
      Нужно только учесть, что сигналы в GTK+ имеют иерархию, то есть виджет получает не только свои сигналы, но и сигналы выше по иерархии. Поэтому для каждого виджета нужно обязательно смотреть его место в иерархии. Она приведена здесь.

  • Спасибо за ответ. Но я имел в виду работу именно в Glade. Допустим я создал окно, две кнопки. Как мне задать действия для этих кнопок в самом Glade? Или я неправильно понял, и в Glade можно создавать окна, кнопки и т.д., а действия для них нужно прописывать в самой программе?

    • Да, в самом Glade только выбираются события и назначаются имена обработчиков этих событий. Сами обработчики уже пишутся непосредственно в программе. Чуть позже я детально опишу, как это делается.

  • И можно ли будет в дальнейшем зарегистрироваться на этом сайте, для обсуждения тех или иных вопросов?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.