繁体   English   中英

单个标签ttk中有多个框架。

[英]Multiple frames in a single tab ttk.Notebook

我有以下代码部分(不完整),我想在ttk“笔记本”的单个选项卡中包含几个框架。

win1 = Tk()    
n = ttk.Notebook(win1)

choice_frame = ttk.Frame(n, style="Black.TLabel")
choice_frame.grid(row=2, column=1, sticky="N,S,E,W", padx=1, pady=1)
choice_frame.grid_columnconfigure(0, weight=3)
choice_frame.grid_rowconfigure(0, weight=1)

frame_text = ttk.Frame(n, style="Black.TLabel")
frame_text.grid(row=0, column=0, sticky = "N")
frame_text.grid_columnconfigure(0, weight=3)
frame_text.grid_rowconfigure(0, weight=1)

frame_table = ttk.Frame(n, style="Black.TLabel")
frame_table.grid(row=2, column=0, padx=1, pady=1, sticky= " N, S, E, W ")
frame_table.grid_columnconfigure(0, weight=3)
frame_table.grid_rowconfigure(0, weight=1)

n.add(frame_table, text="One") # Would like same tab not two separate ones
n.add(choice_frame, text="One")
n.grid(sticky="N")

我还想知道是否有一种方法可以在拖动窗口并最大化窗口时自动调整每个尺寸。 我以前尝试过:

frame_table.grid_propagate(0)

但这似乎并不能使高度和宽度尺寸保持不变。 我希望“表格”位于窗口的中央,但可以根据窗口的大小进行调整。

谢谢您的帮助!

grid_propagate您的任何问题。

每个选项卡只能包含一个框架,但是该框架可以包含任何所需的内容。 因此,为选项卡创建一个容器框架,然后将所有其他框架放入容器框架。 这是Frame类存在的主要原因之一-构建便于布局的小部件容器。

至于调整大小,问题可能是您没有在主窗口的行和列中添加权重。 尽管这也可能与您使用grid将框架放置在笔记本中有关。 您不能使用grid将项目放置在笔记本中。

暂无
暂无

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

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