使用多个Glade文件:GtkBuiler

时间:2009-09-04 11:06:33

标签: gtk pygtk glade

我正在为gnome编写一个支持插件的应用程序。 每个插件都包含一个glade文件和一个python脚本。

如何在主界面中插入插件中的glade文件。

插件空档文件应包含页面/标签,并将嵌入主界面的笔记本中。

请帮忙。

2 个答案:

答案 0 :(得分:3)

最好的方法是让插件自己加载glade文件,并具有主程序可以调用以获取页面/选项卡的功能。这样插件可以连接所需的所有信号。 gtk.Builder documentation

答案 1 :(得分:2)

您有两种选择:

  1. 您可以将两个glade文件打开为两个不同的GtkBuilder对象,然后手动将插件文件的内容添加到主窗口中。您可以将插件的内容放入名为pluginbox的框中,并将主应用的笔记本命名为mynotebook。在代码中应该如下所示:

    main_builder = gtk.Builder()
    main_builder.add_from_file('main.glade')
    
    plugin_builder = gtk.Builder()
    plugin_builder.add_from_file('plugin.glade')
    
    mynotebook = main_builder.get_object('mynotebook')
    pluginbox = plugin_builder.get_object('pluginbox')
    mynotebook.append_page(pluginbox)
    
  2. 您可以将不同的文件添加到一个构建器。您应该确保两个文件中的名称没有冲突:

    main_builder = gtk.Builder()
    main_builder.add_from_file('main.glade')
    main_builder.add_from_file('plugin.glade')
    
    mynotebook = main_builder.get_object('mynotebook')
    pluginbox = main_builder.get_object('pluginbox')
    mynotebook.append_page(pluginbox)