Создание виджетов с использованием GtkBuilder

Я использую Glade для разработки Box с виджетами, а затем загружаю эти виджеты в мой интерфейс во время выполнения. Чтобы создать каждый Box с виджетами во время выполнения, я создаю новый GtkBuilder, вызываю add_from_string, передавая текст из .ui-файла, который создает Glade, а затем использую объект, возвращенный из get_object ("box1") в пользовательском интерфейсе. Я знаю, что мог бы создавать виджеты с кодом, но сейчас я бы хотел использовать .ui-файлы, которые создает Glade. Хотя кажется неэффективным создавать новый объект GtkBuilder и потраченный впустую объект Window для каждого ящика, который я хочу создать. Есть ли более эффективный способ загрузки файлов .ui без создания нового объекта GtkWidget и ненужного объекта Window?

Спасибо, Вэнс

4
задан 2 July 2012 в 02:17

2 ответа

Если вы хотите, чтобы во время выполнения разные куски помещались в разные области, вы можете создать один файл glade с множеством окон и переопределить их. Для примера проверьте, что я сделал для , этот другой вопрос .

0
ответ дан 2 July 2012 в 02:17

Если вы хотите заполнить свой графический интерфейс новыми виджетами во время работы приложения, совершенно неправильно создавать кучу отдельных файлов .ui и GtkBuilders для них. Очень легко создать отдельный виджет из кода.

Я предполагаю, что вы используете Python, поскольку вы пометили свой вопрос как pygtk .

Взгляните на простой пример:

from gi.repository import Gtk

и:

my_window = Gtk.Window()
my_button = Gtk.Button()
my_window.add(my_button)
my_window.show_all()

Ну, это не будет работать само по себе, но вот как вы можете создать новый виджеты. Для получения подробной информации о конкретных виджетах перейдите к этому элегантному учебнику / документам: http://python-gtk-3-tutorial.readthedocs.org/

0
ответ дан 2 July 2012 в 02:17

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

Похожие вопросы: