在tkinter中可以有一个垂直方向的按钮吗?

Mik*_* T. 5 python tkinter button

可以定向tk.Buttonttk.Button垂直定向吗?想要tk.Scrollbar在某种程度上定位self.scrlbr = tk.Scrollbar(master, orient = vertical)

尝试了tk.Button(*args).pack(fill = tk.Y),但它没有提供所需的效果 - 按钮仍然是水平方向.

在手册页中找不到任何内容,但也许有一些不太明确的方法?

pat*_*yts 3

按钮小部件不提供此选项,但如果需要,您可以模拟按钮小部件以获得效果。如前所述,一种方法是使用包含旋转文本的图像。根据您的主题,您还可以使用 来创建一个按钮,该按钮canvas允许您使用该选项旋转在其自身上绘制的文本angle。这在 Windows 主题上看起来很奇怪,但在使用的小部件是 Tk(而不是 ttk 小部件)或 ttk 的情况下看起来可能很正常,前提是主题是使用 Tk 绘制元素的主题(unix 上的默认设置)。

其外观的粗略演示:

在此输入图像描述

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()
Run Code Online (Sandbox Code Playgroud)