1
當一個事件盒加入到佈局的一些事件都少不了我注意到,這並不happend例如將其添加到一個固定的(非常相似的部件),我試過以這種方式恢復事件掩碼沒有成功:啓用PyGTK的事件盒運動通知事件,同時是一個佈局的孩子
import pygtk
import gtk
def foo(widget, event):
print event
pygtk.require('2.0')
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect('destroy', lambda x: gtk.main_quit())
eventbox = gtk.EventBox()
eventbox.connect('button-press-event', foo) # works
eventbox.connect('motion-notify-event', foo) # fail
eventbox.set_events(
gtk.gdk.BUTTON_MOTION_MASK| # restoring missed masks
gtk.gdk.BUTTON1_MOTION_MASK|
gtk.gdk.BUTTON2_MOTION_MASK|
gtk.gdk.BUTTON3_MOTION_MASK)
layout = gtk.Layout()
image = gtk.image_new_from_file('/home/me/picture.jpg')
layout.add(image)
eventbox.add(layout)
window.add(eventbox)
window.show_all()
gtk.main()
我應該如何恢復錯過的事件/掩碼?
ok,感謝您試用它,我會嘗試重新啓動電腦或在更新的GTK(我有2.16.1)中進行測試...在哪個版本中? – mkotechno 2010-04-09 03:12:03
@mkotechno:pygtk的2.16,GTK 2.18,油嘴2.22,開羅1.8.8,pygobject 2.18,蟒蛇2.6.4 – nosklo 2010-04-09 03:32:30
我試着用GTK 2.20和工作正常,但出於保持向後兼容性,我應該在此代碼改變?或者可能是一個GTK錯誤? – mkotechno 2010-04-09 03:39:01