【发布时间】:2015-12-16 09:53:53
【问题描述】:
我在两个 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。怎么了?..
【问题讨论】:
标签: python drag-and-drop gtk pygtk