Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyGTK - генерация GUI из XML "на лету" [RSS Feed]

#1 Янв. 15, 2007 12:17:27

dorian
От:
Зарегистрирован: 2006-05-18
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK - генерация GUI из XML "на лету"

Всем доброго времени суток. Возник вопрос относительно генерации пользовательского интерфейса на лету с использованием PyGTK. Необходимо генерить интерфейс пользователя из XML файлов, которые клиент получает от удаленного сервера. Тоесть, у клиента первоначально открывается пустое окно (которое генерится из glade файла и не содержит никаких элементов управления). Далее клиент подключается к серверу, который посылает клиенту XML файл с описанием интерфейса. Возможна ли вообще реализация такого механизма? Попытки найти инфу в интернете не привела к желаемому результату. Согласно доке по PyGTK существует метод gtk.glade.xml_new_from_buffer который вроде как должен создавать новый gtk.glade.XML объект по переданной строке в виде параметра, но опять же не понятно, в каком виде передавать туда XML. Возможно кто-то сталкивался с подобными проблемами?



Офлайн

#2 Янв. 15, 2007 12:26:39

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK - генерация GUI из XML "на лету"

Такое вполне возможно. Создаешь пустое окно, затем грузишь glade файл. Потом открываешь его обычным способом, и загружаешь из него все что нужно кроме окна(т.к. одно у тебя уже есть). Допустим у тебя дочерний эл-т окна загруженного из glade файла - VBox. Тогда через get_widget получаешь его и прикрепляешь к основному окну. Я делал похожее, единственное отличие только то , что glade файлы были локальные и их не надо было грузить.



Офлайн

#3 Янв. 15, 2007 13:01:48

dorian
От:
Зарегистрирован: 2006-05-18
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK - генерация GUI из XML "на лету"

Спасибо за ответ, вроде как получилось



Офлайн

#4 Янв. 15, 2007 13:56:42

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2253
Репутация: +  40  -
Профиль   Отправить e-mail  

PyGTK - генерация GUI из XML "на лету"

ёпт
а теперь открываем доки по pygtk и читаем gtk.Socket() и тп (в пугтк туториал 159 страница)

Офлайн

#5 Янв. 15, 2007 21:23:14

dorian
От:
Зарегистрирован: 2006-05-18
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK - генерация GUI из XML "на лету"

slav0nic
ёпт
а теперь открываем доки по pygtk и читаем gtk.Socket() и тп (в пугтк туториал 159 страница)
Каким образом в plug.add я могу передать объект типа gtk.glade.XML ? Или мне необходимо разбирать пlade файл на отдельные виджеты (в plug.add можно передавать только виджеты). К тому же каким образом будет осуществляться связь сокетов с заглушками, если по условию xml структуры интерфейсов будут располагаться на удаленном сервере приложений?



Отредактировано (Янв. 15, 2007 21:54:28)

Офлайн

#6 Янв. 16, 2007 10:58:56

dorian
От:
Зарегистрирован: 2006-05-18
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK - генерация GUI из XML "на лету"

Еще возник вопрос относительно дерева виджетов. При старте клиента я создаю объект galde.XML из локального glade файла.
……………………
self._gladefile = os.getcwd()+'//glade//client//'+self._config
self._gtkWidgetsTree = gtk.glade.XML(self._gladefile)
……………………

после получения XML файла с сервера, я добавляю полученные элементы интерфейса в родительский виджет:
…………………………………
if self._indata:
mainContainer = self._gtkWidgetsTree.get_widget(self._indata)
appWidgetsTree = gtk.glade.xml_new_from_buffer(self._indata, len(self._indata))
mainContainer.add(appWidgetsTree.get_widget(self._indata))
…………………………………
Как теперь мне обновить дерево виджетов self._gtkWidgetsTree, чтобы оно также включало все виджеты из appWidgetsTree ?



Офлайн

  • Начало
  • » GUI
  • » PyGTK - генерация GUI из XML "на лету"[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version