谢谢您阅读此篇。
我正在制作一个简单的动画,它基于 PysimpleGUI 食谱中的两个示例之一。附加的代码,当然,它没有做任何事情。我查看了许多示例,试图弄清楚如何更新画布但没有成功。
我的第一次尝试是基于正弦波图示例。我有一个无限的while循环和一个显示功能。图形区域上的显示显示了循环的第一次迭代,但此后不再更新。
显示功能包含:
graph.DrawCircle((i,j)
, 5
,line_color='black'
等
第二个相关问题,我应该使用画布还是图形方法(如在正弦波图示例中),还是没关系?
我不想用太多代码让读者不知所措。如果我能让以下工作正常工作,那么我可能会有很好的机会使用真正的代码。
import PySimpleGUI as sg
import time
layout = [
[sg.Canvas(size=(100, 100), background_color='red', key= 'canvas')],
[sg.T('Change circle color to:'), sg.Button('Red'), sg.Button('Blue')]
]
window = sg.Window('Canvas test')
window.Layout(layout)
window.Finalize()
canvas = window.FindElement('canvas')
cir = canvas.TKCanvas.create_oval(50, 50, 100, 100)
while True:
event, values = window.Read()
'''
if event is None:
break
if event == 'Blue':
canvas.TKCanvas.itemconfig(cir, fill="Blue")
elif event == 'Red':
canvas.TKCanvas.itemconfig(cir, fill="Red")
'''
# this is the part that I need to sort out
for i in range(10):
if i % 2 == 0:
canvas.TKCanvas.itemconfig(cir, fill="Blue")
else:
canvas.TKCanvas.itemconfig(cir, fill="Red")
time.sleep(1)