如何隐藏tkinter ttk.Notebook小部件中的整个标签栏?

问题描述:

如何隐藏ttk Notebook小部件中的标签栏?我不想隐藏属于该选项卡的框架。我只是想将标签栏从视线中移除,即使它不在屏幕的顶部(用于多个目的)。如何隐藏tkinter ttk.Notebook小部件中的整个标签栏?

无论如何,这将是很好的全屏模式。

+1

隐藏标签栏相对于使用包和电网一起没有影响。您始终可以在由包管理的小部件内部使用网格。 –

+0

@BryanOakley我并不是说隐藏栏就可以使用'grid'。我的意思是使用'Notebook'可以让你使用'grid'(并且移除标签栏有效地使它像一个'Frame',它在布局方面的功能不同)。当我另外尝试在包装内使用'grid'时,它始终抱怨我已经处理了一些包含'pack'管理的奴隶的东西。 – Shule

+0

我用'Frame'抱怨的同一个代码不会抱怨'Notebook'就是我说的。标签栏只是一个我希望能够删除的视觉额外内容。不过,我更希望将其全屏删除,而不是用于布局的“笔记本”。 – Shule

从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()