Как использовать XML-файл Glade для создания исполняемой программы

Я учусь использовать Glade 3 для создания графического интерфейса.

Тем не менее, файл *.glade является XML-файлом. Я не уверен, как идти вперед отсюда. Поиск в Google не очень помогает. Здесь уже задан вопрос об этом же инструменте. Инструмент для преобразования.Glade (или xml) файла в C-источник. Однако я не могу понять ответ, который дан в этом.

Может кто-нибудь рассказать, как проходит основной цикл разработки с использованием Glade 3?

  1. Дизайн пользовательского интерфейса на поляне.
  2. Создайте *.glade xml файл.
  3. И ЧТО ПОТОМ????

Как XML-файл может быть преобразован в исполняемый файл?

A. Должен ли я преобразовать этот XML-файл в язык (C) и скомпилировать код C?

Б. Или есть ли способ прямого преобразования кода XML в исполняемый файл ELF?

Я пытаюсь сделать графический интерфейс для собственного использования. Я использую Linux и хочу исполняемый файл ELF (например, как я получу, если я напишу код C с использованием библиотеки gtk и скомпилирую его с помощью gcc).

2 ответа

Если мы посмотрим на страницу Википедии для Glade, у нее есть целый раздел о том, как использовать Glade в программе: с GtkBuilder. Теперь осталось только прочитать документы, и вы можете начать использовать Glade. Без обид, но я никогда раньше не использовал Glade, и это достаточно ясно во всех документах. Например, вот домашняя страница Glade.

Я бы сделал что-то вроде этого:

DerivedWindow::DerivedWindow()
{
  mainBox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL, 7));
  builder = Gtk::Builder::create();
  try {
    builder->add_from_file("filename.glade");
  } catch (Glib::Error& ex) {
    errMsg("Window Builder Failed: " + ex.what());
  }

  Gtk::Box* box;
  builder->get_widget("name of box inside main window", box);
  if (!box) { this->destroy_(); return; }

  box->unparent();
  mainBox->pack_start(*box, Gtk::PACK_SHRINK);

  //optional - if you want full access to particular widgets
  builder->get_widget("name of widged id", widgetname);

  //connect signals here...

  add(*mainBox);
  show_all();
}

Обратите внимание, что это Gtkmm 3+.

Важно, чтобы вы очистили окно, полученное из файла glade, чтобы вы могли прикрепить его к производному окну.

Другие вопросы по тегам