2016-05-16 11 views
1

私はTkinterを使ってPythonで一種の可動ウィジェットプログラムを作ろうとしていますが、問題に遭遇しました。あなたがクリックしたウィジェットの機能に干渉することなくクリックを検出することはできません。 (例:テキストまたはボタンウィジェット):tkinter 3のウィジェットの境界線をクリックして検出する

import tkinter as tk 
main = tk.Tk() 
notes = tk.Text(main, height = 15, bd = 4) 
notes.place(y = 10, x = 20) 
notes.bind("<Button-1>", lambda event: print("hello")) 

しかし、あなたがしようとすると途中でクリックした場合、それはまだ動作

ここでは一例です。ウィジェット自体ではなく、ボーダー上でクリック可能にする方法はありますか?

+0

したがって、ウィジェットを完全に無効にし、_only_ウィジェットの移動をサポートしたいですか? –

答えて

1

"break"をイベントハンドラから返すことで、デフォルトの動作を防ぐことができます。例:

def hello(event): 
    print("hello") 
    return "break" 
... 
notes.bind("<Button-1>", hello) 

同じウィジェットでも同じです。これにより、デフォルトの動作(カーソルを移動し、ボタンをクリックする)が発生しないようにします。

もう1つの選択肢は、各ウィジェットを小さな枠線を持つ枠に配置して、その枠に枠を配置することです。

関連する問題