【问题标题】:PyGTK: Can't drag and drop text files into my applicationPyGTK:无法将文本文件拖放到我的应用程序中
【发布时间】:2012-07-03 19:10:59
【问题描述】:

我正在尝试将我的文本文件查看器配置为通过将文件拖到其上来打开文件。我查看了几个教程并尝试模仿它们,但我的小部件似乎从未收到“drag_data_received”信号。在这里,self.topLevel 是一个 gtk.Window 小部件,我的应用程序的根,这是设置它的代码的最后一点。我已经确认将文本文件拖到它上面根本不会调用 OnDrop。

def OnDrop(widget, context, x, y, sel, targetType, timestamp):
    print context.actions
    print context.targets
    return True

self.topLevel.connect("drag_data_received", OnDrop)
self.topLevel.drag_dest_set(gtk.DEST_DEFAULT_DROP |
                            gtk.DEST_DEFAULT_MOTION |
                            gtk.DEST_DEFAULT_HIGHLIGHT, [("text/*", 0, 0)], gtk.gdk.ACTION_COPY)

self.topLevel.show_all()

【问题讨论】:

    标签: python drag-and-drop gtk pygtk


    【解决方案1】:

    我意识到我的应用程序正在接收信号,但是我将所有内容放到上面的 TextView 小部件(因为它占据了它的大部分窗口)正在吸收这些信号,而不是调用我的回调函数;将文件放到应用程序的任何其他部分修复它。我通过调用 TextView 的 drop_dest_unset 函数让它工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 2010-09-09
      • 2022-09-24
      • 1970-01-01
      • 2013-09-17
      相关资源
      最近更新 更多