2013-11-05 44 views
0

我有一個OptionMenu可以選擇什麼可以是很長的字符串。我不希望窗口隨時調整大小,所以我將OptionMenu寬度固定爲可以完全包含大部分選項的內容。tkinter:控制OptionMenu如何顯示長選擇

我遇到的問題是,當一個非常長的選項被選中,它是居中在按鈕,並且槓桿欄的東西(不管是什麼)被繪製在最後幾個字母之上(這看起來很亂)。我寧願讓它左對齊,因爲理解不適合的字符串的最佳機會是從頭開始閱讀它,而不是隨機在中間的某處。

有什麼方法可以重寫這是如何繪製的? OptionMenu沒有任何選項。理想情況下,我想截斷更長的字符串並附加elipses(...)來表明它不適合,但至少將它放到左對齊將是一個很大的改進。

它看起來像它建立在某種按鈕的頂部;有沒有辦法去那個按鈕,所以我可以配置它?

這裏的工作的例子,如果有人想看看究竟OptionMenu如何處理長期的選擇(Python 2.6中)...

root = Tk() 

body = Frame(root) 
body.pack() 

chosen = StringVar(root) 
om = OptionMenu(body, chosen, 'short option', 'this is anything but a short option, and wordy to boot!') 
om.config(width=10) 
om.pack() 

root.mainloop() 

回答

0

如果你能提供的代碼,這將是一個很大的幫助 不管怎麼說,如果您已使用網格對齊OptionMenu,那麼您可以使用不同的列或增加列寬或甚至可以使用sticky來對齊它。

+0

它與調整大小或放置小部件無關,它完全關於如何在按鈕上繪製所選項目。發佈的代碼可以運行以查看它的功能。 –

+0

然後你可以在'om.config'中使用'wraplength'。它會顯示整個文本,但是會顯示多行。 – Gogo

相關問題