2017-03-04 74 views
1

不工作我已經寫在python3和Gtk3一個腳本,我希望它關閉該窗口,當我點擊「關閉」菜單項,但是當我做什麼追加。我正在使用Ubuntu 16.10。
這是腳本:菜單項中gtk3 + python3

import gi 
gi.require_version('Gtk', '3.0') 
from gi.repository import Gtk 

class MenuTest(Gtk.Window): 
    def __init__(self): 
     Gtk.Window.__init__(self, title='MenuTest') 

     Box=Gtk.VBox() 
     self.add(Box) 

     Menubar=Gtk.MenuBar() 
     Menu1=Gtk.Menu() 
     Mfile=Gtk.MenuItem("_File") 
     Mfile.set_submenu(Menu1) 
     Clos=Gtk.MenuItem("Close") 
     Menu1.append(Clos) 
     Clos.connect('button-press-event', Gtk.main_quit) 
     Menubar.append(Mfile) 
     Box.pack_start(Menubar, expand=True, fill=True, padding=0) 


Wind=MenuTest() 
Wind.connect('delete-event', Gtk.main_quit) 
Wind.show_all() 
Gtk.main() 

我在哪裏做錯了嗎?

+0

您需要使用信號「激活」,而不是「後的按鍵事件」。 –

+0

它的工作!非常感謝! 如果您想您的評論轉化爲一個答案,我將它設置爲正確答案 –

回答

1

您需要使用信號「激活」,而不是「後的按鍵事件」。

"button-press-event"信號來自Gtk.Widget類,其中Gtk.MenuItem源自於。當按下通常來自鼠標的按鈕時發出此信號。事件掩碼需要設置窗口小部件,接收此信號的這種信號是Gdk.EventMask.BUTTON_PRESS_MASK。通常這個信號是不需要的。

Gtk.MenuItem具有"activate signal"當一個項目被激活,其被髮射。這可能是由一個鼠標按鍵水井鍵盤,觸摸屏等..