如何使我的 Tkinter 应用程序适合整个窗口,无论大小如何?

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

我使用 Python 制作了一个 Tkinter 应用程序。我希望它能够自动调整大小并填充整个窗口,无论我如何调整它的大小。 问题是,当我扩大窗口大小(使用光标)时,边框上会出现灰色空间以填充间隙(参见下图)。

灰色空间填充

这是去掉不必要细节的代码:

import tkinter as tk
from tkinter import ttk
import openpyxl


root = tk.Tk()

frame = ttk.Frame(root)
frame.pack()

widgets_frame = ttk.LabelFrame(frame, text = "Insert Data")
widgets_frame.grid(row = 0, column = 0, padx = 20, pady = 10)

day_label = ttk.Label(widgets_frame, text = "Date")
day_label.grid(row = 1, column = 0, padx = 5, pady = (0, 5), sticky = "ew")
day_entry = ttk.Entry(widgets_frame)
day_entry.grid(row = 2, column = 0, padx = 5, pady = (0, 5), sticky = "ew") 

walking_entry = ttk.Entry(widgets_frame)
walking_entry.insert(0, "Walking duration (min)")
walking_entry.bind("<FocusIn>", lambda e: walking_entry.delete('0', 'end'))
walking_entry.grid(row = 3, column = 0, padx = 5, pady = (0, 5), sticky = "ew")

button = ttk.Button(widgets_frame, text = "Insert")
button.grid(row = 4, column = 0, padx = 5, pady = 5, sticky = "nsew")

treeFrame = ttk.Frame(frame)
treeFrame.grid(row = 0, column = 1, pady = 10)
treeScroll = ttk.Scrollbar(treeFrame)
treeScroll.pack(side = "right", fill = "y")

cols = ("Day", "Walking")

treeview = ttk.Treeview(treeFrame, show = "headings", yscrollcommand = treeScroll.set, columns = cols, height = 13)
treeview.column("Day", width = 100)
treeview.column("Walking", width = 50)
treeview.pack()
treeScroll.config(command = treeview.yview)

root.mainloop()

有人有建议可以帮助我解决这个问题吗? 谢谢。

我添加了这行代码,因为在另一个线程中,他们说这有助于在窗口大小增加时均匀地扩展小部件:

root.grid_columnconfigure(0,weight = 1)
root.grid_columnconfigure(1,weight = 1)
root.grid_rowconfigure(0, weight = 1)
root.grid_rowconfigure(1, weight = 1)
root.grid_rowconfigure(2, weight = 1)
root.grid_rowconfigure(3, weight = 1)
root.grid_rowconfigure(4, weight = 1)

不幸的是,即使这样做了,我也没有注意到任何变化。

python tkinter widget window resize
1个回答
0
投票

您可以使用

expand = True, fill = BOTH
作为所需小部件的属性,以将它们扩展到完整尺寸。

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