GTKBuilderを使用して、グレードファイルからウィジェットツリーを再利用する方法は?
-
08-10-2019 - |
質問
gtk.notebook on-the-flyに入力したいです。ユーザーがファイルを開くたびに、新しいノートブックタブが生成されます。かなり簡単です。私の問題は、Gladeを使用してUIを構築し、Notebook-Tabには子ウィジェットツリー(ScrolledWindow-> ViewPort-> Alignment-> Frame)が必要であることです。グレードファイルには、テンプレートノートブックタブがあります。これは、プレーンGTKでツリー全体をコーディングする必要がないように、複数回使用したいと考えています。 Libgladeを使用すると、ここでPygtk FAQで説明されているように、ウィジェットツリーを再利用できます。 http://faq.pygtk.org/index.py?file=faq22.011.htp&req=show 。 gtkbuilderでこれを行うにはどうすればよいですか?
前もって感謝します、
アーサー
解決
gtkbuilderでこのようにしてください:
builder = gtk.Builder()
builder.add_from_file("GUI.xml")
builder.connect_signals(self)
self.window1 = builder.get_object("window1")
self.window1.show()
編集:
私は最初は間違っていましたが、GtkBuilderが追加されるとオブジェクトをインスタンス化するようです。したがって、これを行う理想的な方法は、文字列を介して手動でウィジェットを追加することです
builder.add_from_string("""
<interface>
<object class="GtkWindow" id="window1">
<child>
<object class="GtkComboBox" id="combobox1">
<property name="model">liststore1</property>
</object>
</child>
</object>
</interface>""")
self.window1 = builder.get_object("window1")
うまくいけば、これはうまくいきます!
所属していません StackOverflow