Tkinter 小部件未按预期调整大小

我有一个网格布局的简单窗口,右侧有一个画布和一些标签。它们的位置和大小正确 - 但是当我将窗口调整到右侧时,它们确实会扩大,但只有大约一半(即,对于我扩大窗口的右侧每 2 个像素,它们的小部件只会扩大 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()

截图

Helenr
浏览 80回答 1
1回答

湖上湖

唯一根据窗口大小调整大小的定位命令是 pack()。众所周知,您具有以下功能:pack()grid()place()顺便说一句,我建议使用 place 函数并使用它:    window.resizable(width=False, height=False)此功能阻止客户端调整 tkinter 窗口大小的能力。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python