如何摆放窗户

时间:2017-03-26 22:15:44

标签: python-3.x tkinter

我发现了无法解决的问题。尝试谷歌问题和最接近的是[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()

1 个答案:

答案 0 :(得分:1)

你无法做你想做的事。 Toplevel窗户是独立的。你不能将它们放在框架中。

如果您希望它们在移动主窗口时移动,您可以在主窗口的<Configure>事件上放置一个绑定,以便在移动时捕获它。然后,您可以使用geometry方法编写一些代码来移动其他顶层窗口。