Tkinter画布中的垂直文本

6
有没有一种方法在Tkinter库中绘制垂直文本?(推荐使用Python)
textID = w1.create_text(5, 5, anchor="nw")
w1.itemconfig(textID, text = "This is some text")
3个回答

20

鉴于有人在访问这个答案,我会添加一些更新信息。

在tcl 8.6中,create_text方法增加了一个angle选项。您可以使用Tkinter.TclVersion来检查您的tcl版本。如果您的版本是8.6或更高版本,则可以使用以下代码:

textID = w1.create_text(5, 5, anchor="nw", angle=90)

Angle来拯救!为什么这个没有更好的文档说明? - Mike from PSG
1
值得一提的是,Python 2.7.16 仍然使用 tcl 8.5,但在 Python 3.7.2 中,tkinter.TclVersion 确实是 8.6(请注意所有小写字母 tkinter)。 - martineau

6
如果您想知道 tkinter.Canvas.create_text 是否有类似的功能:
textID = w1.create_text(5, 5, anchor="nw", orient=tkinter.VERTICAL)

如果是创建垂直文本,那么答案是否定的。 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()

示例:

enter image description here

虽然这可能不像在 create_text 方法上设置选项那样优雅,但它确实有效。


1
我不知道如何在tkinter中制作竖排文字,但你可以制作一个你想要的竖排文字的图像。
  1. 截取你想要的文本并裁剪它
  2. 截取背景颜色并裁剪它
  3. 在Word、PowerPoint或其他软件中,将文本放在背景上
  4. 再次截屏并裁剪
  5. 将该截屏放入画图中
  6. 将画图文件保存在与您的程序相同的文件夹中
  7. 在线将画图文件转换为gif格式: http://image.online-convert.com/convert-to-gif
  8. 使用以下代码将图像放入您的程序中

vertical_text = PhotoImage(file = "<your file name>.gif") canvas.create_image(x, y, image = vertical_text)

这是我正在制作的一个程序中tkinter窗口的截图,它可以让你复习单词。 example

希望这能对你有所帮助!:) :) - Tom Fuller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接