где я могу найти GladeGen? - PullRequest
       10

где я могу найти GladeGen?

3 голосов
/ 06 июня 2009

Я хотел бы спроектировать графический интерфейс с использованием Glade и генерировать из него код на Python. Дело в том, что я не могу найти GladeGen. Кто-нибудь знает, откуда его можно скачать?

Ответы [ 4 ]

2 голосов
/ 06 июня 2009

Google твой друг.

http://www.linuxjournal.com/article/7558

2 голосов
/ 06 июня 2009

Почему бы не использовать конструктор GUI, похожий на Anjuta или программу Glade, запишите это в glade XML и используйте привязки python для libglade для использования файла XML ... Вроде как XAML.

Редактировать, добавил несколько ссылок на Glade.xml-> python

http://glc.sourceforge.net/
http://www.pygtk.org/ (может помочь)

0 голосов
/ 29 июня 2014

Кажется, он был скопирован в этот репозиторий Bazaar в панели запуска:

launchpad.net / ~ wattazoum: gladegen: Код: Python dev tools

(прямой скачать tarball - использовал это для фрагмента ниже)

Также ссылки на статью автора GladeGen:

Обратите внимание, что в Glade 3.8.0 вы можете экспортировать файлы как Libglade или GtkBuilder; Я сделал небольшой тест, который показывает, что вы должны сохранять файлы как Libglade; GladeGen может анализировать оба:

$ python2.7 GladeGen.py /tmp/test-libglade.glade TestMe TestMe
funcs
main <function main at 0xb72d98b4>
search_file <function search_file at 0xb72d964c>

classes
GladeWindow <class 'GladeWindow.GladeWindow'>
TestMe <class 'TestMe.TestMe'>

methods
('GladeWindow', '__init__')
('GladeWindow', 'hide')
('GladeWindow', 'set_callback_function')
('GladeWindow', 'set_search_path')
('GladeWindow', 'set_top_window')
('GladeWindow', 'show')
('TestMe', '__init__')
('TestMe', 'hide')
('TestMe', 'init')
('TestMe', 'set_callback_function')
('TestMe', 'set_search_path')
('TestMe', 'set_top_window')
('TestMe', 'show')

widgets
('GtkWindow', 'window1')
('GtkHBox', 'hbox1')
('GtkScrolledWindow', 'scrolledwindow1')

handlers

$ python2.7 GladeGen.py /tmp/test-gtkbuilder.glade TestMe2 TestMe2
funcs
main <function main at 0x95778ec>
search_file <function search_file at 0x9577684>

classes
GladeWindow <class 'GladeWindow.GladeWindow'>
TestMe2 <class 'TestMe2.TestMe2'>

methods
('GladeWindow', '__init__')
('GladeWindow', 'hide')
('GladeWindow', 'set_callback_function')
('GladeWindow', 'set_search_path')
('GladeWindow', 'set_top_window')
('GladeWindow', 'show')
('TestMe2', '__init__')
('TestMe2', 'hide')
('TestMe2', 'init')
('TestMe2', 'set_callback_function')
('TestMe2', 'set_search_path')
('TestMe2', 'set_top_window')
('TestMe2', 'show')

widgets

handlers

Однако, если вы попытаетесь запустить экспортированный код Python, будет запущен только первый (python TestMe.py); в то время как второй, gtkbuilder one, потерпит неудачу:

$ python2.7 TestMe2.py

(TestMe2.py:24883): libglade-WARNING **: Expected <glade-interface>.  Got <interface>.

(TestMe2.py:24883): libglade-WARNING **: did not finish in PARSER_FINISH state
Traceback (most recent call last):
  File "TestMe2.py", line 66, in <module>
    main(sys.argv)
  File "TestMe2.py", line 59, in main
    w = TestMe2()
  File "TestMe2.py", line 37, in __init__
    self.init()
  File "TestMe2.py", line 52, in init
    GladeWindow.__init__(self, filename, top_window, widget_list, handlers)
  File "/path/to/src/wattazoum_pydevtools_gladegen/src/GladeWindow.py", line 77, in __init__
    self.xml = gtk.glade.XML(fname)
RuntimeError: could not create GladeXML object

Хорошо, я просто рад, что все еще могу использовать это, поскольку, очевидно, Glade не может сгенерировать / экспортировать / создать / сохранить как код Python ...


... РЕДАКТИРОВАТЬ: хотя, следует отметить, что экспорт просто:

def init(self):
  filename = '/tmp/test-libglade.glade'
  widget_list = [
          'window1',
          'hbox1',
          'scrolledwindow1',
          ]
  handlers = [
          ]
  top_window = 'window1'
  GladeWindow.__init__(self, filename, top_window, widget_list, handlers)

... то есть, он просто взаимодействует с файлом Glade (почти как в начальном уроке http://www.pygtk.org/articles/pygtk-glade-gui/Creating_a_GUI_using_PyGTK_and_Glade.htm), и фактически не создает код Python, который я ожидал, как в переведенном коде, например:

self.window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)

... и так далее ... это позор, потому что это то, что я иначе искал :)

0 голосов
/ 13 июня 2009

Мое предложение - не генерировать код. Glade 3.6 теперь можно сохранять в формате GtkBuilder (xml), который можно загрузить в ваш код. С этим гораздо проще иметь дело!

http://www.pygtk.org/pygtk2reference/class-gtkbuilder.html

...