gpt4 book ai didi

python - 调整 tkinter 窗口和内容的大小

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:00 25 4
gpt4 key购买 nike

我正在使用 python tkinter 构建一个包含 matplotlib 图和一些按钮的 ui,但在调整窗口及其内容的大小时遇到​​困难。我查看了本网站和文档上的一些示例,据我了解,对于包含较小框架的框架来一起调整大小,它们都需要单独配置。每个对象都会应用一个权重来定义它接收的可用空间量(这是正确的吗?)。但是,当我尝试应用此功能(如下所示)时,所有框架都不会调整大小。另外,如果列配置的宽度为零,行配置的宽度为 1,这是否意味着它只会在一个方向上调整大小?

import Tkinter
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
class Application():
def __init__(self, master):


frame2 = Tkinter.Frame(master, height=510, width=770, bg='red')
frame2.grid(row=0, column=0, sticky='nsew')
frame2.columnconfigure(0, weight=1)
frame2.rowconfigure(0, weight=1)

frame2a = Tkinter.Frame(frame2, height=80, width=770, bg='blue')
frame2a.grid(row=0, column=0, sticky='nsew')
frame2a.columnconfigure(0, weight=1)
frame2a.rowconfigure(0, weight=1)

frame2b = Tkinter.Frame(frame2, height=410, width=770, bg='green')
frame2b.grid(row=1, column= 0, sticky='nsew')
frame2b.columnconfigure(0, weight=1)
frame2b.rowconfigure(1, weight=1)

# add plot
fig = Figure(figsize=(9.5,5.2), facecolor='white')
fig.add_subplot(111)
canvas = FigureCanvasTkAgg(fig, master=frame2b)

canvas.show()
canvas.get_tk_widget().pack(side='top', fill='both', expand=1)

if __name__ == '__main__' :

root = Tkinter.Tk()
root.geometry("770x510")
app = Application(root)
root.mainloop()

最佳答案

您使用columnconfigurerowconfigure的方法是正确的,但您忘记了一件事:您没有使用master窗口上的方法。所以,你基本上想要这样做:

def __init__(self, master):
master.columnconfigure(0, weight=1)
master.rowconfigure(0, weight=1)

回答您的其他问题(另外,如果列配置的宽度为零,行配置的宽度为 1,这是否意味着它只会在一个方向上调整大小?):是的,你是对的,那么小部件/窗口将仅向一个方向延伸或不向任何方向延伸。

此外,由于您使用grid来动态调整大小,因此heightwidth参数已过时。

关于python - 调整 tkinter 窗口和内容的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25751730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com