【发布时间】:2017-09-25 10:47:01
【问题描述】:
我正在尝试创建 16 个按钮,它们将完全占据窗口底部的 3/4。但是,框架高度和宽度值似乎没有任何影响。如何获得我想要的行为?
from tkinter import *
class Application(object):
def __init__(self):
# Creating the main window
self.window = Tk()
self.window.geometry('{}x{}'.format(400, 400))
# frame where numbered buttons will be
frame = Frame(self.window)
frame.configure(height=300, width=300)
frame.pack(side=BOTTOM)
# add buttons
for i in range(4):
for j in range(4):
Button(frame, text=str(4*i + j + 1)).grid(row=i, column=j, sticky=N+E+S+W)
self.window.mainloop()
def main():
app = Application()
main()
【问题讨论】:
-
将参数
master传递给__init__,然后将调整大小的行更改为应该可以工作的master.geometry('{}x{}'.format(400, 400)) -
@WhatsThePoint 我不太明白你的意思。你能详细说明一下吗?
-
因为根本问题是一样的。 Tkinter 小部件旨在缩小(或扩展)以适应它们的孩子。因此,如果您将大小应用于框架,然后将小部件放置在该框架内,则框架将缩小以适应。你问出了什么问题,答案是没有问题——这是 Tkinter 的默认行为。
-
我建议你改写你的问题,问你真正想要什么。对我来说,这听起来像是你在问为什么 UI 会这样。如果您不关心原因,但实际上想知道如何将主窗口分成两部分,其中一个是屏幕的 1/4,一个是 3/4,请改为询问。
-
网格列和行可以配置为具有最小像素大小。
frame.grid_columnconfigure(i, minsize=75),frame.grid_rowconfigure(j, minsize=75).