0
我寫了一個可摺疊窗框窗口小部件,並希望給它一個停靠/取消停靠屬性。從我讀過的內容來看,小部件不能放置在其他小部件「之上」(除了在畫布上,我希望避免),所以我不能只是「擡起」框架,而且他們的主人不能改變,所以我可以不要將框架放入新的Toplevel中。我能想到的唯一的其他選擇是將小部件複製到新的Toplevel中。不幸的是,在創建新小部件之前,我沒有看到複製或深層複製操作上的任何選項來更改主控。Python tkinter複製窗口小部件到新主窗口
所以,問題: 這些假設是準確的,還是有辦法做這些事情?
如果沒有,我有任何其他選項不是解決辦法,我在這裏一起放:
def copywidget(self, frame1, frame2):
for child in frame1.winfo_children():
newwidget = getattr(tkinter,child.winfo_class())(frame2)
for key in child.keys(): newwidget[key] = child.cget(key)
if child.winfo_manager() == 'pack':
newwidget.pack()
for key in child.pack_info():
newwidget.pack_info()[key] = child.pack_info()[key]
elif child.winfo_manager() == 'grid':
newwidget.grid()
for key in child.grid_info():
newwidget.grid_info()[key] = child.grid_info()[key]
elif child.winfo_manager() == 'place':
newwidget.place()
for key in child.place_info():
newwidget.place_info()[key] = child.place_info()[key]