Изменение соотношения сторон текстового объекта tkinter canvas

#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. Хорошо… Черт возьми. Спасибо