Có cách nào để vẽ văn bản dọc trong thư viện Tkinter không? (Python khuyến cáo)Văn bản dọc trong Tkinter Canvas
textID = w1.create_text(5, 5, anchor="nw")
w1.itemconfig(textID, text = "This is some text")
Có cách nào để vẽ văn bản dọc trong thư viện Tkinter không? (Python khuyến cáo)Văn bản dọc trong Tkinter Canvas
textID = w1.create_text(5, 5, anchor="nw")
w1.itemconfig(textID, text = "This is some text")
Nếu bạn đang tự hỏi liệu tkinter.Canvas.create_text
có một cái gì đó như thế này:
textID = w1.create_text(5, 5, anchor="nw", orient=tkinter.VERTICAL)
thì câu trả lời là không. Phương thức create_text
chỉ có thể tạo văn bản theo chiều ngang.
Tuy nhiên, bạn thể sử dụng str.join
để tạo ra văn bản dọc:
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()
Ví dụ:
Trong khi điều này có thể không thanh lịch như chỉ đơn giản là thiết lập một tùy chọn theo phương pháp create_text
, nó hoạt động.
Tôi không biết cách nào để làm cho văn bản thẳng đứng trong Tkinter, nhưng bạn chỉ có thể làm cho một hình ảnh của văn bản dọc bạn muốn
vertical_text = PhotoImage(file = "<your file name>.gif") canvas.create_image(x, y, image = vertical_text)
Đây là ảnh chụp màn hình từ cửa sổ tkinter trong chương trình tôi đang tạo cho phép bạn sửa đổi các từ
Vì mọi người đang được liên kết với câu trả lời này, tôi sẽ thêm một bản cập nhật.
In tcl 8.6, the create_text method got an angle
option. Bạn có thể kiểm tra phiên bản tcl của mình với Tkinter.TclVersion
. Nếu bạn có 8,6 trở lên, bạn có thể sử dụng:
textID = w1.create_text(5, 5, anchor="nw", angle=90)
Tôi hy vọng điều này sẽ giúp ích cho bạn! :) :) –