[我在两个PyGTK小部件上使用拖放功能-一个简单的Label
和一个FileChooserButton
。两者似乎都能正常工作。
但是,我想让小部件的外观在鼠标悬停在其上时发生变化,因此用户将获得线索,可以接收到它。
是否有自动方法?我尝试使用drag_motion
信号手动实现它,但从未提出过...
这是一个简单的例子,基于http://faq.pygtk.org/index.py?req=show&file=faq23.031.htp:
import gtk
TARGET_TYPE_URI_LIST = 80
dnd_list = [ ( 'text/uri-list', 0, TARGET_TYPE_URI_LIST ) ]
def on_drag_data_received(widget, context, x, y, selection, target_type, timestamp):
print "DND received"
def on_drag_motion(self, widget, context, x, y, timestamp):
print "DND motion"
w = gtk.Window()
w.connect('drag_data_received', on_drag_data_received)
w.connect('drag_motion', on_drag_motion)
w.drag_dest_set( gtk.DEST_DEFAULT_MOTION | gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_DROP,
dnd_list, gtk.gdk.ACTION_COPY)
w.show_all()
gtk.main()
DND received
已打印,但从不打印DND motion
。怎么了?..
您混合了参数(复制粘贴需要专注的用户...;-)
拖动运动参数是:
widget, context, x, y, time_
但是您有:
self, widget, context, x, y, timestamp