Tkinter画布中的垂直文本

Bet*_*moo 5 python tkinter

有没有办法在Tkinter库中绘制垂直文本?(Python推荐)

textID = w1.create_text(5, 5, anchor="nw")
w1.itemconfig(textID, text = "This is some text")
Run Code Online (Sandbox Code Playgroud)

Nov*_*vel 11

由于人们正在与此答案相关联,因此我将添加更新.

在tcl 8.6中,create_text方法获得了一个angle选项.您可以查看您的tcl版本Tkinter.TclVersion.如果您有8.6或更高,您可以使用:

textID = w1.create_text(5, 5, anchor="nw", angle=90)
Run Code Online (Sandbox Code Playgroud)


iCo*_*dez 6

如果你问是否tkinter.Canvas.create_text有这样的事情:

textID = w1.create_text(5, 5, anchor="nw", orient=tkinter.VERTICAL)
Run Code Online (Sandbox Code Playgroud)

然后答案是否定的.该create_text方法只能创建水平文本.


但是,您可以使用str.join创建垂直文本:

from tkinter import Tk, Canvas
root = Tk()
canvas = Canvas()
canvas.grid()
canvas.create_text((10, 5), text="\n".join("This is some text"), anchor="nw")
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

例:

在此输入图像描述

虽然这可能不如简单地在create_text方法上设置选项那么优雅,但它确实有效.