В tkinter есть удобное событие, называемое «Enter», которое отслеживает, когда мышь входит в виджет. Если вы привязываете его к холсту, а в обратном вызове привязки для этого события вы можете canvas.focus_set, то всякий раз, когда мышь находится на холсте, у вас будет фокус, и, таким образом, привязки клавиш будут работать.
будет работать, даже если холст теряет фокус (скажем, введя текст в другой виджет), потому что, когда мышь снова войдет в холст, он восстановит фокус.
Вам будет лучше использовать оператор *
для построения вашей строки.
n = 4
for i in range(n):
print('*' * (n-i))
Выход:
****
***
**
*