[英]Tkinter widgets not resizing as expected
抱歉,如果这是一个简单的解决方法 - 我是 tkinter(以及一般的图形应用程序)的新手,并且在学习曲线上。
我在网格布局中有一个简单的 window,在它的右侧有一个 canvas 和一些标签。 它们的位置和大小都正确 - 但是当我将 window 向右调整大小时,它们确实会扩大,但只有大约一半(即,对于右边的每 2 个像素,我会扩大 window,它们的小部件只会扩大 1) . 我有他们各自的列加权,以及父框架的列加权。 我不知道如何解决这个问题,也没有通过谷歌搜索找到类似的东西。 下面我发布了我的代码,以及应用程序启动时与我调整大小时的小部件屏幕截图。
代码
from tkinter import *
root = Tk()
root.title("title")
mainframe = Frame(root)
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
canvas = Canvas(mainframe, width=800, height=800)
canvas.grid(row=1, column=1, rowspan=3)
info_label = Label(mainframe, text='Info Label', bg='white', relief='solid', borderwidth=1)
info_label.grid(row=1, column=2, columnspan=2)
chatbox = Label(mainframe, text='Welcome to the application.', bg='white', relief='solid', borderwidth=1)
chatbox.grid(row=2, column=2, columnspan=2, sticky=(N,S,E,W))
chat_entry = Entry(mainframe)
chat_entry.grid(row=3, column=2)
chat_send = Button(mainframe, text='Send')
chat_send.grid(row=3, column=3)
mainframe.rowconfigure(1, weight=1)
mainframe.rowconfigure(2, weight=1)
mainframe.columnconfigure(2, weight=1)
root.columnconfigure(1, weight=1)
root.mainloop()
截图
根据 window 大小调整大小的唯一定位命令是 pack()。 众所周知,您具有以下功能:
pack()
grid()
place()
顺便说一句,我建议使用 function 的地方并使用它:
window.resizable(width=False, height=False)
此 function 阻止客户端调整 tkinter window 大小的能力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.