2014-11-14 181 views
1

如何隱藏ttk Notebook小部件中的標籤欄?我不想隱藏屬於該選項卡的框架。我只是想將標籤欄從視線中移除,即使它不在屏幕的頂部(用於多個目的)。如何隱藏tkinter ttk.Notebook小部件中的整個標籤欄?

無論如何,這將是很好的全屏模式。

+1

隱藏標籤欄相對於使用包和電網一起沒有影響。您始終可以在由包管理的小部件內部使用網格。 –

+0

@BryanOakley我並不是說隱藏欄就可以使用'grid'。我的意思是使用'Notebook'可以讓你使用'grid'(並且移除標籤欄有效地使它像一個'Frame',它在佈局方面的功能不同)。當我另外嘗試在包裝內使用'grid'時,它始終抱怨我已經處理了一些包含'pack'管理的奴隸的東西。 – Shule

+0

我用'Frame'抱怨的同一個代碼不會抱怨'Notebook'就是我說的。標籤欄只是一個我希望能夠刪除的視覺額外內容。不過,我更希望將其全屏刪除,而不是用於佈局的「筆記本」。 – Shule

回答

1

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