2016-06-24 59 views
4

是否可以垂直定向tk.Buttonttk.Button?像tk.Scrollbar以某種方式定位self.scrlbr = tk.Scrollbar(master, orient = vertical)是否有可能在tkinter中有一個垂直方向的按鈕?

已嘗試tk.Button(*args).pack(fill = tk.Y),但它不提供所需的效果 - 按鈕仍然水平方向。

手冊頁沒有找到,但也許有一些不直觀的方式?

+0

我唯一能想出的組織'tk.Button(主,文本=「A \ NB \ NC \ n \ d \ n \ e')。pack(fill = tk.Y)'。它獲取Button垂直方向,但可能有一些更健壯的方式?再次感謝 –

+1

您是否真的想讓按鈕中的文字垂直定向,即旋轉90°並從上到下(反之亦然)?也許你可以添加一張圖片。 –

+0

謝謝!文字翻轉90度也會很好。但是,是的,[這個答案](http://stackoverflow.com/a/38012733/6470235)與使用圖片只是可用的解決方案,我知道此刻。 –

回答

3

按鈕小部件不提供此選項,但您可以模擬按鈕小部件以獲得必要的效果。一種方式,如前所述是使用包含旋轉文本的圖像。根據您的主題,您還可以使用canvas創建按鈕,該按鈕允許您使用angle選項旋轉自己繪製的文本。這在Windows主題上看起來很奇怪,但在正在使用的小部件是Tk(而不是ttk小部件)或ttk提供的主題是使用Tk繪製的元素(unix上的默認值)的情況下,看起來很正常。

它會怎樣看粗演示:

enter image description here

import tkinter as tk 
import tkinter.font as tkfont 
main = tk.Tk() 
font = tkfont.nametofont("TkDefaultFont") 
label = "Click Me" 
height = font.measure(label) + 4 
width = font.metrics()['linespace'] + 4 
canvas = tk.Canvas(main, height=height, width=width, background="SystemButtonFace", borderwidth=2, relief="raised") 
canvas.create_text((4, 4), angle="90", anchor="ne", text=label, fill="SystemButtonText", font=font) 
canvas.bind("<ButtonPress-1>", lambda ev: ev.widget.configure(relief="sunken")) 
canvas.bind("<ButtonRelease-1>", lambda ev: ev.widget.configure(relief="raised")) 
canvas.place(x=5, y=height + 10) 
main.mainloop() 
相關問題