4

gtk.notebookをオンザフライで入力したい。ユーザーがファイルを開くたびに、新しいノートブックタブが生成されます。かなり簡単です。私の問題は、グレイドを使用してUIを構築し、ノートブックタブに子ウィジェットツリー(スクロールウィンドウ->ビューポート->配置->フレーム)が必要なことです。私のglade-fileには、テンプレートのnotebook-tabがあり、これを複数回使用したいので、ツリー全体をプレーンなgtkでコーディングする必要はありません。libgladeを使用すると、pygtkのよくある質問http://faq.pygtk.org/index.py?file=faq22.011.htp&req=showで説明されているようにウィジェットツリーを再利用できます。GtkBuilderでこれを行うにはどうすればよいですか?

前もって感謝します、

アーサー

4

1 に答える 1

1

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")

うまくいけば、これはうまくいきます!

于 2010-12-05T16:45:44.210 に答える