2015-05-30 91 views
1

enter image description here在下面的程序中,我在單個筆記本頁面中有許多選項卡。當選項卡數量增加外觀變化。所以如何把標籤放在不同的行中如何在不同的行中使用ttk Notebook的選項卡?

就像在附加圖片中一樣,我在單行中有很多標籤,但是我希望JJJJ在下面的行中有一些標籤。

如何在不同的行中設置製表符還可以如何在選擇時給製表符賦予不同的顏色(突出顯示製表符)?

title = 'Trial Tool window' 

import sys 
sys.path[:0] = ['../../..'] 

import Tkinter 
import Pmw 

class MyButton(Tkinter.Button): 
    def __init__(self, master=None, cnf={}, **kw): 
     self.__toggle = 0 
     kw['background'] = 'green' 
     kw['activebackground'] = 'red' 
     apply(Tkinter.Button.__init__, (self, master, cnf), kw) 


class Demo: 
    def __init__(self, parent): 
    # Create and pack the NoteBook. 
     notebook = Pmw.NoteBook(parent) 
     notebook.pack(fill = 'both', expand = 1, padx = 10, pady = 10) 

     page = notebook.add('AAAA') 
     notebook.tab('AAAA').focus_set() 

     # Create the "Toolbar" contents of the page. 
     group = Pmw.Group(page, tag_text = 'XYZ') 
     group.pack(fill = 'both', expand = 1, padx = 10, pady = 10) 
     b1 = Tkinter.Checkbutton(group.interior(), text = 'Show tool') 
     b1.grid(row = 0, column = 0) 

     # Add all other Channel pages. 
     page = notebook.add('BBBB') 
     page = notebook.add('CCCC') 
     page = notebook.add('DDDD') 
     page = notebook.add('EEEE') 
     page = notebook.add('FFFF') 
     page = notebook.add('GGGG') 
     page = notebook.add('HHHH') 
     page = notebook.add('IIII') 
     page = notebook.add('JJJJ') 
     page = notebook.add('KKKK') 
     page = notebook.add('LLLL') 
     page = notebook.add('MMMM') 
     page = notebook.add('NNNN') 
     page = notebook.add('OOOO') 
     page = notebook.add('PPPP') 
     page = notebook.add('QQQQ') 
     page = notebook.add('RRRR') 

     notebook.setnaturalsize() 

###################################################################### 

# Create demo in root window for testing. 
if __name__ == '__main__': 
    root = Tkinter.Tk() 
    Pmw.initialise(root) 
    root.title(title) 

    widget = Demo(root) 

    exitButton = MyButton(root, text = 'Exit', command = root.destroy) 
    exitButton.pack() 
    root.mainloop()![enter image description here][2] 
+0

我認爲這是不可能的,根據這篇文章:http://stackoverflow.com/questions/11387362/is-there-a-way-to-set-tabs-of-a-notebook-below -另一個。您可能需要創建自己的Notebook部件(如果您對包裝/網格佈局管理不熟悉並且熟悉一些重要的小部件(如標籤,框架和按鈕),或者只是堅持使用此樣式,則不建議使用) 。無論如何,我認爲你一般至少會打開10個以上的標籤。 – nbro

+0

我還有一個疑問,在筆記本中有沒有突出顯示活動標籤的機會? –

+0

對不起,我只用了一次或兩次,我不記得了。我知道你可以爲Notebook部件指定你自己的'Style',它不是那麼直截了當,但它可能值得閱讀文檔,並試圖看看你是否可以做到這一點。具體來說,你應該閱讀「如何將樣式應用到ttk小部件」... – nbro

回答

1

這不可能與ttk做到這一點,無論如何這是一個可怕的設計。相反,創建一個「選項對話框」,你可以在一個面板上放置一個列表或一個樹形視圖,並使用它在多個子頁面中進行選擇。然後,您可以使用沒有選項卡的筆記本,或者只需切換包含您的子頁面的不同幀,以響應點擊選擇窗格。

搜索谷歌圖像的「選項對話框」,看到這個方案的任何數量的實現。從可用性的角度來看,多行標籤是非常糟糕的設計。

我將此鏈接提供給Hall of Shame以阻止任何人考慮選項卡式對話框中的多行。

+0

是的,現在我覺得你說的是正確的。現在我將創建選擇窗格,其中我將添加複選框以啓用或禁用選項卡。感謝這個想法。 –

相關問題