#submenu
clearMenu = gtk.Menu()
item = gtk.MenuItem("submenu item")
item.connect("activate", lambda w: self.callBackFunction())
clearMenu.append(item)
item.show()
'''TOP level'''
menu = gtk.Menu()
item = gtk.ImageMenuItem("Item1")
img = gtk.Image()
img.set_from_file('image1.png')
item.set_image(img)
menu.append(item)
item.set_submenu(clearMenu) #attach submenu
item.show()
item = gtk.ImageMenuItem("Item2")
img = gtk.Image()
img.set_from_file('image2.png')
item.set_image(img)
item.connect("activate", lambda w: self.callBackFunction())
menu.append(item)
item.show()
我的頂級項目「Item2」調用定義的函數「callBackFunction」。但爲什麼「子菜單項」不是? 我做錯了什麼?子菜單項不呼叫功能[帶有工作解決方案]
編輯
這裏是如何我已經成功地迫使子菜單項跳入所需的操作:
item.connect("button-press-event", self.callBackFunction, argument1, argument2)
但我仍然不明白爲什麼事件「激活」呢不適用於子菜單項,而在頂級菜單項中工作
難道是你只是拼寫錯誤的子菜單項上的信號「激活」? – 2011-03-07 15:44:18
我試圖複製到非工作位置的工作線 - 仍然沒有效果: -/ – Lixas 2011-03-07 19:04:24
它變得更加陌生:如果我使用鍵盤導航進行_left鼠標button_菜單導航,它會起作用。但是如果我使用鼠標,它不會觸發子菜單事件 – Lixas 2011-03-08 06:49:47