python - Tkinter tkSimpleDialog.Dialog 调整大小

标签 python tkinter

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

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

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

这是初始布局:

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"))

所需的行为是:按钮“一”和“二”将拉伸(stretch)以填充窗口。有什么建议吗?

谢谢!

最佳答案

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

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

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

关于python - Tkinter tkSimpleDialog.Dialog 调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18388769/

相关文章:

python - AttributeError: 'Application' 对象没有属性 'label'

python - 解决解决方案不可行的不平等系统

python - 我收到有关日期时间的错误消息

Python get 引发 HTTPError 400 Client Error,但手动访问 URL 后,get 暂时有效

python - 从另一个列表中删除一个列表中对应于 nan 的项目

python - 如何自定义 Tkinter 按钮

python 线程并行运行?

程序启动后 Python GUI 不更新信息

python - 创建新顶层时关闭现有顶层。 Tkinter Python 3

python - Tkinter (python 2.7.2) 需要帮助