2010年12月31日金曜日

GladeでDialogにRESPONSE_IDを設定する。

GladeでGUIを作り、その応答を得る場合はgtk_builder_connect_signalsなどを用いて関数に繋げる。しかし、Dialog程度に関数を発行していると大変なことになる。

そんなときはresponce_idをセットすればよい。Gladeでは右ペインの全般タブに応答IDの項目がそれに当たる。


 後はgtk_windowをrun()すればresponce_idが返される。これでresponce_idにより、値を得るかどうかの分岐が簡単にできる。
self.wTree = gtk.Builder() 
self.wTree.connect("gtk_widget_hide", gtk_widget_hide)
 
dialog = self.wTree.get_object("DialogName")
response = dialog.run()
if response == 0:
        print self.wTree.get_object("entry")
elif response == 1:
        print "False"
 
def gtk_widget_hide(widget):
widget.hide() 
あと、Dialogとメインのウィンドウを同じgladefileに保存している場合、destroy()してしまうと、再び呼び出したときに崩れてしまうので、Dialogの×はdestroy()ではなく、hide()に関連付けておいたほうがいい。

0 件のコメント:

コメントを投稿