如何隐藏tkinter ttk.Notebook小部件中的整个标签栏?
问题描述:
如何隐藏ttk Notebook小部件中的标签栏?我不想隐藏属于该选项卡的框架。我只是想将标签栏从视线中移除,即使它不在屏幕的顶部(用于多个目的)。如何隐藏tkinter ttk.Notebook小部件中的整个标签栏?
无论如何,这将是很好的全屏模式。
答
从tkinter.ttk.Style的帮助:
布局(自我,风格,layoutspec =无)
定义定样式的小部件的布局。如果layoutspec省略了
,则返回给定样式的布局规范。
layoutspec应该是一个不同于
的列表或对象 如果您想“关闭”该样式,那么它们的计算结果都不是False。
试试这个:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
style = ttk.Style()
style.layout('TNotebook.Tab', []) # turn off tabs
note = ttk.Notebook(root)
f1 = ttk.Frame(note)
txt = tk.Text(f1, width=40, height=10)
txt.insert('end', 'Page 0 : a text widget')
txt.pack(expand=1, fill='both')
note.add(f1)
f2 = ttk.Frame(note)
lbl = tk.Label(f2, text='Page 1 : a label')
lbl.pack(expand=1, fill='both')
note.add(f2)
note.pack(expand=1, fill='both', padx=5, pady=5)
def do_something():
note.select(1)
root.after(3000, do_something)
root.mainloop()
隐藏标签栏相对于使用包和电网一起没有影响。您始终可以在由包管理的小部件内部使用网格。 –
@BryanOakley我并不是说隐藏栏就可以使用'grid'。我的意思是使用'Notebook'可以让你使用'grid'(并且移除标签栏有效地使它像一个'Frame',它在布局方面的功能不同)。当我另外尝试在包装内使用'grid'时,它始终抱怨我已经处理了一些包含'pack'管理的奴隶的东西。 – Shule
我用'Frame'抱怨的同一个代码不会抱怨'Notebook'就是我说的。标签栏只是一个我希望能够删除的视觉额外内容。不过,我更希望将其全屏删除,而不是用于布局的“笔记本”。 – Shule