python - 在 tkinter 中调整笔记本选项卡的大小
问题描述
如何在 Tkinter 中调整笔记本标签的大小?最初,我在根目录中创建了 4 个框架,并且能够使用 rowconfigure 和 columnconfigure 调整大小。现在我创建了两个选项卡并在其中一个选项卡内移动了 4 个框架,但问题是行配置和列配置现在没有动态调整四个框架的大小。
由于它在我的根目录下运行良好,因此我认为我在使用选项卡时遇到了问题。如果有人能指出为什么这不起作用以及解决方案是什么,将不胜感激。
代码片段:
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()
解决方案
你正在寻找的是tab.columnconfigure()
和tab.rowconfigure()
尝试这个:
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()
更新:使用网格放置 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()
推荐阅读
- java - Javafx Canvas不会使用draw方法添加背景图像
- node.js - Heroku 上失控的 node-cron 任务
- spring-boot - OpenFeign 有没有办法支持 application/json;odata.metadata=minimal content-type?
- rust - 有没有办法避免在很多地方写类型约束?
- reactjs - NodeJs:Paystack 验证响应
- python - 选择正确选项。验证错误 Django python
- google-apps-script - Apps 脚本调试器:“无法显示调试,因为它已被删除”
- python - 网站用 python 抓取 javascript 元素
- css - HTML/CSS:当表格不再适合屏幕时,响应地转置表格
- python - gdal.Grid 错误“收到 NULL 指针”