我正在创建一个派生自tkSimpleDialog.Dialog。
的类我已经实现了body(self,master)方法,我创建了一些小部件(按钮,标签)并使用grid()进行布局。
我将网格布局设置为拉伸,但它从不占用整个窗口。此外,如果我调整窗口大小,小部件将保持原位而不会移动。
这是初始布局:
以下是我调整窗口大小时会发生的事情:
这是我的代码:
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将拉伸以填充窗口。有什么建议吗?
谢谢!
答案 0 :(得分:1)
这似乎是Dialog类中的错误。在包含对话框主要部分的代码中,它执行此操作:
body.pack(padx=5, pady=5)
请注意,它不包含expand
或fill
属性,因此正文不会增长以填充其父级中的额外空间。