Tkinter顶级窗口大小调整

时间:2015-04-02 23:26:54

标签: python tkinter resize window toplevel

我一直在网上寻找一种方法来确定tkinter中TopLevel()窗口的大小。我阅读了文档并一直在查看effbot.org's tkinterbook。我看到了选项,但我似乎无法让它们发挥作用。

def test():
  top = Toplevel()
  top.title("test")

  msg = Message(top, text="test")
  msg.pack(pady=10, padx=10)


def test1():
  top = Toplevel()
  top.title("test1")

  msg = Message(top, text="test1")
  msg.pack(pady=10, padx=10)

我知道有heightwidth选项,还有root.geometry。但是,我似乎无法通过TopLevel获得任何工作......

此外,是通过定义和顶级创建新窗口的最佳方法吗?我想要的只是一个弹出窗口,里面有一些格式化文本。

1 个答案:

答案 0 :(得分:5)

以下创建一个根窗口,然后将其大小设置为400x400,然后创建一个Toplevel窗口小部件并将其大小设置为500x100:

>>> import tkinter as tk
>>> root = tk.Tk()
>>> root.geometry('400x400')
''
>>> top = tk.Toplevel()
>>> top.geometry('500x100')
''

另一种选择是在您想要使用的窗口中使用所需大小的容器窗口小部件,如CanvasFrame。然后你可以将其他对象放入这个容器中:

>>> top2 = tk.Toplevel()
>>> frame = tk.Frame(top2, width=100, height=100)
>>> frame.pack()

当您pack() frame时,top2会自动调整为适合frame的大小。

使用geometry()设置AxB的大小会产生与将AxB小部件放入动态大小的窗口相同大小的窗口 - 也就是说,如果您放入小部件(或使用geometry()要将窗口大小设置为屏幕宽度,窗口的边框将位于屏幕可见区域之外。