#python #tkinter #canvas
Вопрос:
Я поместил некоторый текст на холст tkinter.
Как бы я изменил соотношение сторон этого текста?
В моем случае у меня есть одна буква на холсте, созданная с помощью canvas.create_text. Я хотел бы изменить высоту этой буквы, сохранив ее ширину. Визуально это выглядело бы так, как будто буква падает вперед или вращается вокруг горизонта. Я также хотел бы изменить ширину буквы, не меняя ее высоту. В этом случае это будет визуально выглядеть так, как будто он вращается.
холст.масштаб изменяет систему координат, в которой нарисована буква, но не масштаб самой буквы.
Вот краткий пример. Я хочу, чтобы высота буквы соответствовала высоте строк с обеих сторон. Но ширина буквы должна остаться прежней.
import tkinter as tk from tkinter import font class FlipDigit(): def __init__(self,master): self.master = master self.digit = tk.Canvas(master,width= 150,height = 150,bg='black') self.font = font.Font(family ='Calibri',size = 150) self.letter = self.digit.create_text(75,75,text = 'A',fill = 'white', font = self.font) self.digit.create_line(5,25,5,125,width=10,fill = '#808080') self.digit.create_line(145,25,145,125,width = 10,fill = '#808080') self.digit.pack() self.count = 0 self.master.after(50,self.Bump) def Bump(self): yscale = .8 if self.count gt; 10: yscale = 1.25 if self.count gt;20: self.count = -1 self.count = 1 self.digit.scale('all',75,75,1,yscale) self.master.after(150,self.Bump) if __name__ == '__main__': root = tk.Tk() Digit = FlipDigit(root) root.mainloop()
Ответ №1:
Я не думаю, что в tkinter есть какой-либо способ сделать это. Вы не можете изменить высоту шрифта независимо от ширины.
Комментарии:
1. Хорошо… Черт возьми. Спасибо