好的,首先我不太確定如何解釋我的問題。這可能是睡眠不足,或者對於Python和GTK或者其組合而言很新穎。爲了幫助我,我已經在zetcode.com的教程的幫助下編寫了一個完整的裸機示例。Python GTK菜單項需要兩次點擊激活
問題,以及我可以說,是一個菜單項 - 沒有子菜單 - 需要兩次點擊才能激活。與一次點擊激活的子菜單項不同。這有點令人討厭(並且很可能會混淆未來的用戶),但並不會真正對我的應用程序造成任何問題。但是,我想要解決它。
我的實際應用程序正在Ubuntu Quickly的幫助下創建 - 但使用gtkBuilder或直接gtk時存在問題。
這裏是赤裸例如:
#!/usr/bin/python
import gtk
class MenuTest(gtk.Window):
def __init__(self):
super(MenuTest, self).__init__()
self.set_title("Menus, how do they work?!")
self.set_size_request(350, 200)
self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(6400, 6400, 6440))
self.set_position(gtk.WIN_POS_CENTER)
mb = gtk.MenuBar()
filemenu = gtk.Menu()
filem = gtk.MenuItem("Some Action")
filem.connect("activate", self.on_file_activate)
mb.append(filem)
vbox = gtk.VBox(False, 2)
vbox.pack_start(mb, False, False, 0)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_file_activate(self, widget):
md = gtk.MessageDialog(self, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE, "herp derp, took two clicks to show me")
md.run()
md.destroy()
MenuTest()
gtk.main()
希望有人能夠幫助,並在同一時間不能完全混淆了小白。
請同時用'pygtk' – saeedgnu 2011-06-14 06:45:27