次の問題があります。ウィジェットをあるコンテナから別のコンテナに移動する必要があります。私はほとんど、ウィジェットをコピーし、そのウィジェットにすべてが含まれている状態で、元のウィジェットを削除することでそれを達成しました。
解決しなければならない唯一の問題は、元のウィジェットにバインドされたコールバックの場合です。これは、コールバック関数への参照を取得できない限り、新しいウィジェットに再バインドできません。
例えば :
import tkinter as tk
def callback(ev):
print('entered')
root = tk.Tk()
frame = tk.Frame(root)
frame.bind('<Enter>', callback)
print(frame.bind()) # ('<Enter>', )
print(frame.bind('<Enter>') # 'if {"[64351688callback %# %b %f %h %k %s %t %w %x %y %A %E %K %N %W %T %X %Y %D]" == "break"} break\n'
widget.bind(key)
コールバック関数への参照を返さないので、bind
メソッドに直接フックすることなく、他にどのようにしてその参照を取得できますか?
を使用print( tk.__file__ )
すると、ソースコードへのパスを取得し、それがどのように機能するかを確認できます。
私が見つけたソースコードでは、この文字列をコールバックとして使用できます
'if {"[64351688callback %# %b %f %h %k %s %t %w %x %y %A %E %K %N %W %T %X %Y %D]" == "break"} break\n'
だからあなたはすることができます
other_frame.bind('<Enter>', frame.bind('<Enter>'))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加