简体   繁体   English

在 tkinter 中调整笔记本选项卡的大小

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

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