繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM