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