我发现了无法解决的问题。尝试谷歌问题和最接近的是[Tkinter: Determine Widget Position relative to Root Window和这里[http://web.archive.org/web/20131521010600/http://www.pythonware.com/library/tkinter/introduction/x9548-window-related-information.htm],但我不明白。你能帮我理解吗?你可以看到我写了tkinter GUI。在主根窗口中有两个框架。顶部是两个按钮,可以启动两个顶层窗户。我需要将窗户放在底部框架内。如果我将主窗口移动到顶层将被粘合'它。这是怎么回事?
import tkinter as tk
from tkinter import Frame, Button
def toplevel1():
top=tk.Toplevel()
top.geometry("600x300+300+270")
top.overrideredirect(1)
def toplevel2():
top=tk.Toplevel()
top.geometry("600x300+300+270")
top.overrideredirect(1)
root = tk.Tk()
root.geometry("600x400+300+150")
tf = tk.Frame(root, height='100' ,width='600').pack(side='top')
bf = tk.Frame(root, height='300', width='600').pack(side='bottom')
b1 = tk.Button(tf, bg='yellow', text='Button1', command=toplevel1).place(height='100' ,width='300', x='0', y='0')
b2 = tk.Button(tf, bg='black', fg='white', text='Button2', command=toplevel2).place(height='100' ,width='300', x='300', y='0')
root.mainloop()
答案 0 :(得分:1)
你无法做你想做的事。 Toplevel窗户是独立的。你不能将它们放在框架中。
如果您希望它们在移动主窗口时移动,您可以在主窗口的<Configure>
事件上放置一个绑定,以便在移动时捕获它。然后,您可以使用geometry
方法编写一些代码来移动其他顶层窗口。