2009-09-04 3 views
3

Я пишу приложение для gnome, которое будет поддерживать плагины. Каждый плагин будет содержать файл glade и скрипт python.Использование нескольких файлов Glade: GtkBuiler

Как вставить файл glade из плагина в основной интерфейс.

Файлы плагинов плагинов должны содержать страницу/вкладку и быть встроены в ноутбук в главном интерфейсе.

помогите пожалуйста.

ответ

3

Лучшим способом было бы заставить плагины загружать сам файл поляны и иметь функцию, которую основная программа может вызвать, чтобы получить страницу/вкладку. Таким образом, плагин может подключать все необходимые ему сигналы. gtk.Builder documentation.

2

У вас есть два варианта:

  1. Вы можете открыть два ПОЛЯНА файлы в двух различных объектов 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) 
    
Смежные вопросы