3 Stimmen

Wo kann ich GladeGen finden?

Ich möchte ein GUI mit Glade entwerfen und daraus Python-Code generieren. Das Problem ist, dass ich GladeGen nicht finden kann. Weiß jemand, wo man es herunterladen kann?

2voto

Aiden Bell Punkte 27753

Warum verwenden Sie nicht den GUI-Designer von Anjuta oder das Glade-Programm und schreiben das in glade XML und verwenden Sie die Python-Bindungen für libglade, um die XML-Datei zu verwenden ... So ähnlich wie XAML.

Bearbeiten, einige Links zu Glade.xml->python hinzugefügt

http://glc.sourceforge.net/
http://www.pygtk.org/ (könnte helfen)

0 Stimmen

Letzte Übergabe an glc in sourceforge csv scheint aus dem Jahr 2002 zu stammen; außerdem gibt es Glade Code Generator - gcgen mit dem letzten Update 2010, das eine zusätzliche XML-Bibliothek benötigt, die es verpackt...

2voto

tinjaw Punkte 31

0voto

Vadim Peretokin Punkte 1706

Mein Vorschlag ist, keinen Code zu generieren. Glade 3.6 kann jetzt im GtkBuilder-Format (xml) speichern, das in Ihren Code geladen werden kann. Das ist viel einfacher zu handhaben!

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

0voto

sdaau Punkte 34279

Es scheint in dieses Bazaar-Repository in Launchpad kopiert worden zu sein:

launchpad.net/~wattazoum: gladegen : Code : Python Entwicklungswerkzeuge

(direkt Tarball herunterladen - für das unten stehende Snippet verwendet)

Auch die Links zu dem Artikel des Autors von GladeGen:

Beachten Sie, dass Sie in Glade 3.8.0 die Dateien entweder als Libglade o GtkBuilder Ich habe einen kleinen Test gemacht, der zeigt, dass man die Dateien als Libglade speichern sollte; GladeGen kann beide parsen:

$ 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

Wenn Sie jedoch versuchen, den exportierten Python-Code auszuführen, wird nur die erste ( python TestMe.py ) wird ausgeführt, während der zweite, gtkbuilder, fehlschlägt:

$ 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

Nun, ich bin nur froh, dass ich das noch nutzen kann, denn anscheinend ist es für Glade nicht möglich, Python-Code zu generieren / exportieren / erstellen / speichern ...


... EDIT: obwohl, es sollte angemerkt werden, dass der Export ist nur:

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)

... das heißt, es ist nur eine Schnittstelle zur Glade-Datei (ziemlich genau wie im Anfangs-Tutorial http://www.pygtk.org/articles/pygtk-glade-gui/Creating_a_GUI_using_PyGTK_and_Glade.htm ), und es erstellt nicht wirklich Python-Code, den ich erwartet habe, wie in übersetzten Code, wie:

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

... und so weiter ... was schade ist, denn das war es, wonach ich sonst gesucht habe :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X