【问题标题】:PyGTK Drag And Drop - "motion" signal not raised, can't change button appearancePyGTK 拖放 - “运动”信号未引发,无法更改按钮外观
【发布时间】: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


    【解决方案1】:

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

    拖动运动参数是:

    widget, context, x, y, time_

    但你有:

    self, widget, context, x, y, timestamp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-03
      • 2017-05-14
      • 2010-10-28
      相关资源
      最近更新 更多