0

我正在尝试将我的文本文件查看器配置为通过将文件拖到文件上来打开文件。我查看了几个教程并尝试模仿它们,但我的小部件似乎从未收到“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()
4

1 回答 1

0

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

于 2012-07-03T19:29:04.303 回答