PyGTK拖放-“运动”信号未发出,无法更改按钮外观

问题描述 投票:1回答:1

[我在两个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
1个回答
0
投票

您混合了参数(复制粘贴需要专注的用户...;-)

拖动运动参数是:

widget, context, x, y, time_

但是您有:

self, widget, context, x, y, timestamp

© www.soinside.com 2019 - 2024. All rights reserved.