7

スクロールバーのある Tkinter キャンバスと、クリックすると座標が返されるはずのいくつかのアイテムがあります。(Python を使用します。)

これは、ウィンドウに最初に表示されるオブジェクトでうまく機能します。ただし、下にスクロールすると、キャンバスのさらに下の項目が表示され、クリックしてもキャンバスの座標は取得されませんが、ウィンドウの座標は取得されます。

絶対座標を取得する方法に関する情報が見つからないので、ここで誰かがその方法を知っているかどうか疑問に思っていますか?

ありがとう。

4

1 に答える 1

12

キャンバス ウィジェットのドキュメントについては、こちらをご覧ください。

ウィンドウ座標からキャンバス座標に変換するには、 メソッドcanvasxcanvasyメソッドを使用します。

find_closest() ウィンドウの x 座標と y 座標を変換し、メソッドを介してその位置に最も近いアイテムを出力するコールバック関数の例を次に示します。

def callback(event):
    canvas = event.widget
    x = canvas.canvasx(event.x)
    y = canvas.canvasy(event.y)
    print canvas.find_closest(x, y)
于 2012-07-03T12:23:39.980 に答える