質問
Glade を使用して GUI を設計し、そこから Python コードを生成したいと考えています。問題は、GladeGen が見つからないということです。どこからダウンロードできるか知っている人はいますか?
解決
Anjuta や Glade プログラムのような GUI デザイナーを使用しないのはなぜですか。それを次のように書き出します。 空き地のXML そして、libgladeのPythonバインディングを使用してXMLファイルを使用します...XAML のようなものです。
編集して、Glade.xml->python へのリンクを追加しました
http://glc.sourceforge.net/
http://www.pygtk.org/ (役立つかもしれません)
他のヒント
Googleはあなたの友達です。
私の提案は - コードを生成しません。グレード3.6は、今、あなたのコード内でロードすることができGtkBuilder形式(XML)で保存することができます。これは対処する方がはるかに簡単です!
http://www.pygtk.org/pygtk2reference/class-gtkbuilder.html の
Launchpad のこの Bazaar リポジトリにコピーされたようです。
launchpad.net/~wattazoum:グラデゲン :コード:Python 開発ツール
(直接 tarボールをダウンロードする - 以下のスニペットにこれを使用しました)
また、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
) が実行されます。一方、2 番目の gtkbuilder は失敗します。
$ 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)
...等々...それが私が探していたものだっただけに、それは残念です :)