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 に答える