使用Glade layout出想要的GUI介面之後,要處理的就是一些Button,像是Toolbar Button、Radio Button等的事件觸發。如下圖顯示,我們可以在Glade Singal Tab裡面,選擇GtkToolButton的Clicked Singal,然後填入自己想定義的Function Name。
之後在Python銜接的地方如下:
- def __init__(self):
- #Set Glade File
- self.gladefile = "EPLab_Manager.glade"
- #window Title Name
- self.windowname = "EPL Manager"
- self.Win = gtk.glade.XML(self.gladefile,self.windowname)
- #Create dictionary and connect to event handle function
- dic = {\
- "on_manager_destroy" : \
- self.manager_quit,
- "on_tb2_version_clicked" : \
- self.on_toolbar_version_clicked
- }
- self.Win.signal_autoconnect(dic)
- def on_toolbar_version_clicked(self,widget):
- print 'on_toolbar_version_clicked\n'
如此就能連接GUI的設定與Event Handler,當使用者按下設定好的Toolbar Button,便會trigger on_toolbar_version_clicked這個function運作。但是不知道哪理出問題,如果想要使用GUI上面close按鈕來關閉視窗,一定要用gtk.main_quit()來離開整個程式。因此上述程式的on_manager_destroy就是連接整個GUI GtkObjec的destroy singal。另外,想要不使用Glade的方式來連接,也可以透過程式直接connect。
- self.Win.single_connect("destray",gtk.main_quit)
這種方式也可以。
0 意見:
Post a Comment