[英]Resizing notebook tabs in tkinter
How to resize notebook tabs in Tkinter?如何在 Tkinter 中调整笔记本标签的大小? Initially, I created 4 frames inside my root, and I was able to resize using rowconfigure and columnconfigure.
最初,我在根目录中创建了 4 个框架,并且能够使用 rowconfigure 和 columnconfigure 调整大小。 Now I created two tabs and shifted the 4 frames inside one of my tabs, but the problem is rowconfigure and column configure is not dynamically resizing the four frames now.
现在我创建了两个选项卡并在其中一个选项卡内移动了 4 个框架,但问题是行配置和列配置现在没有动态调整四个框架的大小。
Since it was working fine with my root, I think I am having issues with tab.由于它在我的根目录下运行良好,因此我认为我在使用选项卡时遇到了问题。 Will appreciate if someone can point out why this is not working and what is the solution.
如果有人能指出为什么这不起作用以及解决方案是什么,将不胜感激。
Code snippet:代码片段:
tabControl=ttk.Notebook(master)
tab1 = Frame(tabControl)
tab2 = Frame(tabControl)
tabControl.add(tab1, text='Tab 1')
tabControl.add(tab2, text='Tab 2')
tab1.grid_columnconfigure(0,weight=1)
tab1.grid_columnconfigure(1,weight=1)
tab1.grid_rowconfigure(1,weight=1)
tab1.grid_rowconfigure(0,weight=1)
tabControl.grid()
what you are looking for is tab.columnconfigure()
and tab.rowconfigure()
您正在寻找的是
tab.columnconfigure()
和tab.rowconfigure()
Try this:尝试这个:
from tkinter import *
from tkinter import ttk
root = Tk()
tabControl = ttk.Notebook(root)
tab1 = ttk.Frame(tabControl)
tab2 = ttk.Frame(tabControl)
tabControl.add(tab1, text ='Tab 1')
tabControl.add(tab2, text ='Tab 2')
tabControl.pack(expand = 1, fill ="both")
tab1.columnconfigure( (0,1), weight=1)
tab1.rowconfigure((0,1), weight=1)
lbl1 = Label(tab1, text='This is frame 1')
lbl2 = Label(tab1, text='This is frame 2')
lbl3 = Label(tab1, text='This is frame 3')
lbl4 = Label(tab1, text='This is frame 4')
lbl1.grid(row=0, column=0)
lbl2.grid(row=0, column=1)
lbl3.grid(row=1, column=0)
lbl4.grid(row=1, column=1)
root.mainloop()
Update : using the grid to place tabControl.更新:使用网格放置 tabControl。
from tkinter import *
from tkinter import ttk
root = Tk()
tabControl = ttk.Notebook(root)
tab1 = ttk.Frame(tabControl)
tab2 = ttk.Frame(tabControl)
Grid.columnconfigure(root, 0, weight=1)
Grid.rowconfigure(root, 0, weight=1)
tabControl.add(tab1, text ='Tab 1')
tabControl.add(tab2, text ='Tab 2')
tabControl.grid(row=0, column=0, sticky='nsew')
tab1.columnconfigure( (0,1), weight=1)
tab1.rowconfigure((0,1), weight=1)
lbl1 = Label(tab1, text='This is frame 1')
lbl2 = Label(tab1, text='This is frame 2')
lbl3 = Label(tab1, text='This is frame 3')
lbl4 = Label(tab1, text='This is frame 4')
lbl1.grid(row=0, column=0)
lbl2.grid(row=0, column=1)
lbl3.grid(row=1, column=0)
lbl4.grid(row=1, column=1)
root.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.