Я пишу программу для моего Raspberry Pi4 для проекта моего Мастера, который поначалу звучал так просто, но по какой-то причине Python вызывает у меня горе.
Короче - я создал холст tkinter с многоугольником по центру на холсте. Форма этого многоугольника будет зависеть от значения счетчика.
Счет контролируется событием моргания от нейро-мозговой гарнитуры - этот счет работает (в основном).
Что я затем я хочу обновить холст, чтобы поместить новые точки для многоугольника в пакет, но ничего из того, что я пробовал, похоже, не работает. Самое близкое, что я получил, - это попытка команды .redraw (), которая вытащила бесконечное число windows до того, как я выдернул пробку.
Я не совсем новичок в программировании, учил много языков в свое время, но никогда раньше не использовал python и явно пропускаю очень простой шаг, который приведет к тому, что все выпадет.
Я попытаюсь изменить код, чтобы использовать клавиатуру, а не гарнитуру, и добавлю его ниже, если народ думает, что это поможет.
import keyboard
import time
from tkinter import *
count = 0
points = [250,250,350,250,350,350,250,350]
root = Tk()
while True:
# set window to middle of screen
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
xcoord = screen_width/2-300
ycoord = screen_height/2 - 300
root.geometry("%dx%d+%d+%d" % (600,600,xcoord,ycoord))
#set up canvas size and background colour
canvas1 = Canvas(root, relief = FLAT,width = 600, height = 600, background = "blue")
#set up buttons shape and colour
button = canvas1.create_polygon(points, fill="darkgreen", outline="yellow")
canvas1.pack()
if keyboard.is_pressed("f"):
if count < 4:
count += 1
elif count == 4:
count = 0
time.sleep(0.1)
if count == 0:
points = [250,250,350,250,350,350,250,350]
elif count == 1:
points = [300,100,500,500,100,500]
elif count == 2:
points = [200,100,400,100,300,500]
elif count == 3:
points = [100,300,500,100,500,500]
elif count == 4:
points = [100,100,100,500,500,300]
print(count)
root.update()