我有以下问题:我需要将小部件从一个容器移动到另一个容器。我主要是通过复制该小部件以及该小部件中包含的所有内容并删除原始小部件来实现的。
唯一要解决的问题是绑定到原始小部件的回调的情况,除非获得对回调函数的引用,否则无法将其绑定到新的小部件。
例如:
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>'))