2016-06-24 39 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() 
相关问题