2013-07-09 35 views
5

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") 

Trả lời

7

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ụ:

enter image description here

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.

0

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

  1. Screen bắn văn bản mà bạn muốn và cắt nó
  2. Screen bắn màu nền và cắt nó
  3. trong Word hay PowerPoint hoặc một cái gì đó, đưa văn bản trên nền
  4. Đi một ảnh chụp màn hình và cây trồng mà
  5. đặt rằng ảnh chụp màn hình trong sơn
  6. Lưu file sơn trong thư mục tương tự như chương trình của bạn
  7. chuyển đổi các tập tin sơn để một gif trực tuyến: http://image.online-convert.com/convert-to-gif
  8. Sử dụng đoạn mã sau để đưa hình ảnh trong chương trình của bạ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ừ example

+0

Tôi hy vọng điều này sẽ giúp ích cho bạn! :) :) –

4

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) 
Các vấn đề liên quan