【问题标题】:how to use the glade xml file to make an executable program如何使用glade xml文件制作可执行程序
【发布时间】:2018-02-22 22:37:14
【问题描述】:

我正在学习使用 glade 3 创建 GUI。

但是,*.glade 文件是一个 xml 文件。我不知道如何从这里继续前进。谷歌搜索并没有真正的帮助。在Tool to convert .Glade (or xml) file to C source 已经有一个问题问过同样的事情。但是我真的无法理解其中给出的答案。

有人能说出使用 glade 3 开发周期的基本流程吗?

  1. 在 Glade 中设计 UI。
  2. 生成 *.glade xml 文件。
  3. 然后呢????

如何将 xml 文件转换为可执行文件?

A.我应该将此 xml 文件转换为语言 (C) 并编译 C 代码吗?

B.或者有没有办法将 xml 代码直接转换为 ELF 可执行文件?

我正在尝试制作 GUI 供我自己使用。我使用 linux 并想要一个 ELF 可执行文件(例如,如果我使用 gtk 库编写 C 代码并使用 gcc 编译它,我会得到什么)。

【问题讨论】:

  • 欢迎来到 Stack Overflow!在撰写此评论时,您在 17 分钟前提出了这个问题。 Stack Overflow 是一个网站;不是每个人都在看它,所以你需要耐心得到答案。无论如何,glade 文件就是 UI 的样子。您需要使用 GTK+ 工具包编写一些代码来使用 glade 文件。您可以使用 C 或任何其他您喜欢的语言。用于将 glade 文件加载到 GTK+ 3 中的类是 GtkBuilder。 (我不了解 GTK+ 2。)您还可以使用 GLib 的一部分 GResource 将 xml 嵌入到您的二进制文件中。祝你好运!
  • @andlabls 是的,这只是出于对所有不成功的谷歌搜索和明显缺乏不晦涩的操作方法的沮丧而写的评论...感谢您的指点..也许我会研究 GtkBuilder 和 GResource ...但是现在我将自己编写代码...稍后会回到林间空地...

标签: c xml gtk glade


【解决方案1】:

如果我们查看the Wikipedia page for Glade,它有一整节是关于如何在程序中使用 Glade:使用 GtkBuilder。现在剩下的就是阅读the docs,您就可以开始使用Glade了。无意冒犯,但我以前从未使用过 Glade,这在所有文档中都很清楚。例如,这里是Glade's homepage

【讨论】:

    【解决方案2】:

    我会这样做:

    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 文件中获得的框很重要,因此您可以将其附加到派生窗口。

    【讨论】:

      猜你喜欢
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      相关资源
      最近更新 更多