4

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

textID = w1.create_text(5, 5, anchor="nw")
w1.itemconfig(textID, text = "This is some text")
4

3 回答 3

18

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

在 tcl 8.6 中, create_text 方法有一个angleoption。你可以检查你的 tcl 版本Tkinter.TclVersion。如果您有 8.6 或更高版本,则可以使用:

textID = w1.create_text(5, 5, anchor="nw", angle=90)
于 2017-03-04T22:24:58.490 回答
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()

例子:

在此处输入图像描述

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

于 2013-07-09T18:09:30.657 回答
0

我不知道在 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 窗口的屏幕截图,可让您修改单词 例子

于 2015-10-17T18:42:33.700 回答