Python tkinter元素不随窗口调整大小,使用pack

Python tkinter元素不随窗口调整大小,使用pack,python,tkinter,Python,Tkinter,我有一些基本参数输入到AI分配的当前代码。它只是用于st起始参数和显示所实现的不同算法的输出,但是包含输出的框不会调整大小?我想我可能在亲子结构上做错了什么,但我不知道是什么 def __init__(self, master=None): super().__init__(master) self.master = master self.pack() self.create_widgets() def create_widgets(self): se

我有一些基本参数输入到AI分配的当前代码。它只是用于st起始参数和显示所实现的不同算法的输出,但是包含输出的框不会调整大小?我想我可能在亲子结构上做错了什么,但我不知道是什么

def __init__(self, master=None):
    super().__init__(master)
    self.master = master
    self.pack()
    self.create_widgets()

def create_widgets(self):
    self.mainframe= tk.Frame(master=self, width=768, height=576)
    self.mainframe.pack(fill=tk.BOTH, expand=1)
    self.xsizelabel = tk.Label(self.mainframe, text="Size (X)")
    self.xsizelabel.pack(side="top")
    self.xsize = tk.Entry(self.mainframe)
    self.xsize.insert(0, 2)
    self.xsize.pack(side="top")
    self.ysizelabel = tk.Label(self.mainframe, text="Size (Y)")
    self.ysizelabel.pack(side="top")
    self.ysize = tk.Entry(self.mainframe)
    self.ysize.insert(0, 1)
    self.ysize.pack(side="top")
    self.xstartlabel = tk.Label(self.mainframe, text="Starting Position (X)")
    self.xstartlabel.pack(side="top")
    self.xStart = tk.Entry(self.mainframe)
    self.xStart.insert(0, 0)
    self.xStart.pack(side="top")
    self.ystartlabel = tk.Label(self.mainframe, text="Starting Position (Y)")
    self.ystartlabel.pack(side="top")
    self.yStart = tk.Entry(self.mainframe)
    self.yStart.insert(0, 0)
    self.yStart.pack(side="top")
    self.outputstartlabel = tk.Label(self.mainframe, text="Output")
    self.outputstartlabel.pack(side="top")
    self.separator = tk.Frame(master=self.mainframe, width=768, height=576, bd=1)
    self.separator.pack(fill=tk.BOTH, padx=5, pady=5)
    self.output = tk.Scrollbar(self.separator)
    self.output.pack(side=tk.RIGHT, fill=tk.Y)
    self.listbox = tk.Listbox(self.separator, yscrollcommand=self.output.set)
    self.listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)
    self.run_button = tk.Button(self.mainframe)
    self.run_button["text"] = "Run with these settings"
    self.run_button["command"] = self.runAlgorithm
    self.run_button.pack(side="top")
    self.quit = tk.Button(self.mainframe, text="QUIT", fg="red",
                          command=self.master.destroy)
    self.quit.pack(side="bottom")
但结果窗口如下所示:


当我展开窗口时,不会展开任何内容,请显示“自动填充”和“展开”选项。我做错了什么?

我无法运行你的程序,因为你没有完整地演示。我看到您已经在self.mainframe上设置了填充和展开选项,但没有在构造函数中设置这些选项。因此,包含self.mainframe的基本窗口将不会扩展以填充其可用空间。您需要使所有父窗口都可展开,因为当您拖动主窗口的边缘时,您将在顶层框架上执行操作。

为什么要使用tkinter?@RandomChannel这不是一个有用的注释。Tkinter在某些情况下非常有用,也是一个很好的学习工具。@RandomChannel:Tkinter是一个很棒的学习工具,是许多类型程序的完美工具包。它是一个很有用的学习工具,但并不意味着这个人要问这个问题。我使用Tkinter是因为我需要在python项目上快速添加gui。该项目的目标是建立不同算法的效率分级,但要求是“请有一个用于参数输入的GUI”。我非常精通python的后端功能,但以前从未使用过GUI,我主要是一名webapp程序员。谷歌说tkinter是用python制作GUI的最快方法,所以我就是这么做的。谢谢,我认为它与父框架有关,但完全没有注意到我没有在构造函数中设置它为可扩展的