Tkinter tkSimpleDialog.Dialog调整大小

时间:2013-08-22 18:59:27

标签: python tkinter

我正在创建一个派生自tkSimpleDialog.Dialog。

的类

我已经实现了body(self,master)方法,我创建了一些小部件(按钮,标签)并使用grid()进行布局。

我将网格布局设置为拉伸,但它从不占用整个窗口。此外,如果我调整窗口大小,小部件将保持原位而不会移动。

这是初始布局:

Initial layout

以下是我调整窗口大小时会发生的事情:

After resizing

这是我的代码:

import Tkinter
import tkSimpleDialog

class Test(tkSimpleDialog.Dialog):

    # ########################################
    def __init__(self, parent):

    tkSimpleDialog.Dialog.__init__(self, parent, "?")

    # ########################################
    def body(self, master):

        Tkinter.Label(master, text="Hello").grid(row=0, column=0, columnspan=2, sticky="nsew")
        Tkinter.Button(master, text="ONE").grid(row=1, column=0, sticky="nsew")
        Tkinter.Button(master, text="TWO").grid(row=1, column=1, sticky="nsew")

        master.columnconfigure(0, weight=1)
        master.columnconfigure(1, weight=1)
        master.rowconfigure(0, weight=1)
        master.rowconfigure(1, weight=1)

        self.resizable(height=True, width=True)

if __name__ == "__main__":

    Test(Tkinter.Tk("test"))

所需的行为是:按钮ONE和TWO将拉伸以填充窗口。有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这似乎是Dialog类中的错误。在包含对话框主要部分的代码中,它执行此操作:

body.pack(padx=5, pady=5)

请注意,它不包含expandfill属性,因此正文不会增长以填充其父级中的额外空间。