python tkinter frame大小变换_python、tkinter Frame height和width参数值有n

您看到这种行为的原因是,当使用grid或pack时,tkinter小部件被设计成收缩或扩展以完全适合其子部件。99.99%的情况下,这是完全正确的行为,因为它会导致gui响应字体大小、屏幕分辨率和窗口大小的变化。在

如果您的目标是将屏幕分成两部分,其中一部分占屏幕的1/4,另一部分占屏幕的3/4,那么最好的解决方案是使用grid或{},因为这两个部分都可以很容易地设置相对大小。在

我通常不推荐place,所以这里有一个使用网格的解决方案。注意grid.rowconfigure和{}的用法from tkinter import *

class Application(object):

def __init__(self):

self.window = Tk()

self.window.geometry('{}x{}'.format(400, 400))

self.window.grid_rowconfigure(0, weight=1)

self.window.grid_rowconfigure(1, weight=3)

self.window.grid_columnconfigure(0, weight=1)

frame = Frame(self.window, background="pink")

frame.grid(row=1, column=0, sticky="nsew")

for row in range(4):

frame.grid_rowconfigure(row, weight=1)

for column in range(4):

frame.grid_columnconfigure(column, weight=1)

# add buttons

for i in range(4):

for j in range(4):

button = Button(frame, text=str(4*i + j + 1))

button.grid(row=i, column=j, sticky=N+E+S+W)

self.window.mainloop()

def main():

app = Application()

main()

在这个例子中,根窗口中的第0行(零)可以用于任何您想要的东西。Tkinter会尽最大努力使GUI的这一部分占窗口高度的1/4。我建议在该行中放置一个框架,然后在该框架中放置任何其他小部件。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值