简体   繁体   English

在Tkinter的另一个小部件内调整一个小部件的大小

[英]Resizing one widget inside another widget in Tkinter

I am developing a simulation software for Mössbauer spectroscopy (Chemistry) but while designing the UI, I am facing problem while resizing the children widget with parent widget. 我正在开发用于Mössbauer光谱学(化学)的仿真软件,但是在设计UI时,在用父级小部件调整子级小部件的尺寸时遇到了问题。 The parent frame fills the extra space when window is maximized but the children widget doesn't changes its size. 当窗口最大化时,父框架将填充额外的空间,但子窗口小部件不会更改其大小。

from Tkinter import *
import ttk
import tkFileDialog as FileDialog
from PIL import Image, ImageTk
import tkFont
import matplotlib
from numpy import sin, pi

root = Tk()
# Main Container
content = ttk.Frame(root)
bold = tkFont.Font(family='Helvetica', weight='bold')
LeftFrame = ttk.Frame(content, borderwidth=5, relief="groove", width=200)
RightFrame = ttk.Frame(content, borderwidth=5, relief="groove", width=750)
text = Text(LeftFrame, height=40, width=30, padx=5, pady=5)

..... Some Codes .....

# Geometry
LeftFrame.grid(column=0, row=1, rowspan=2, sticky=(N, S, E, W))
RightFrame.grid(column=1, row=1, columnspan=3, rowspan=2, sticky=(N, S, E, W))
namelbl.grid(column=0, row=1, sticky=(N, S, E, W), padx=5)
text.grid(column=0, row=2, sticky=(N, S, E, W))

root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
content.columnconfigure(0, weight=1)
content.columnconfigure(1, weight=3)
content.columnconfigure(2, weight=3)
content.columnconfigure(3, weight=3)
content.rowconfigure(1, weight=1)

root.state("zoomed")

root.mainloop()

So, my question is How do I change the size of text widget (children) with LeftFrame (parent) in the same rate. 因此,我的问题是如何以相同的速率使用LeftFrame (父级)更改text小部件(子级)的大小。 In my case only LeftFrame is expanding while text is constant. 在我的情况下,只有LeftFrame扩展,而text不变。

软件截图

You aren't giving the sticky option to the widgets inside the frame, which prevents the widgets from filling the area they have been given. 您没有为框架内的小部件提供sticky选项,这可以防止小部件填充它们被赋予的区域。 Also, you aren't giving the inner frame rows and columns weights. 另外,您不会给内部框架的行和列权重。

Any time you use grid, you should be specifying weights for the rows and columns of the parent widgets. 任何时候使用网格时,都应该为父窗口小部件的行和列指定权重。 If you have frames inside of frames, each frame is independent and needs its rows and columns configured appropriately. 如果框架内有框架,则每个框架都是独立的,并且需要适当配置其行和列。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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