Tkinter的元件不与窗口调整大小,使用包

问题描述 投票:0回答:1

我有一些基本的参数输入到AI分配下当前的代码。它只是存在于ST起始参数和显示的实施的不同算法的outpit,但包含输出不会调整框的大小?我想我做错了什么,也许与亲子结构,但我想不出什么。

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

但由此产生的窗口如下所示:default

expanded

没有扩展的时候我扩大窗口,dispite设置自动填充和扩展选项。我究竟做错了什么?

python tkinter
1个回答
1
投票

因为你没有提出这件事,我不能运行程序。我看到你设置填充和扩大self.mainframe选择,但您没有设置在构造这些选项。因此,基本窗口,其中包含self.mainframe,不会扩大,以填补其可用空间。你需要让所有的父窗口可扩展性,因为当你拖动你的行为是顶层框架在主窗口的边缘。

© www.soinside.com 2019 - 2024. All rights reserved.