Python 3.x 如何让脚本在包含tkinter窗口的启动时运行
我需要一个python脚本在启动时运行,这样当Raspberry Pi启动时,脚本就会启动。该脚本有一个Tk窗口和画布,其中有一个填充16:9显示的背景图像。在背景上的画布上画有一些形状 我已经成功地创建了项目的这一部分。它是一个带有闪烁箭头的仪表板显示屏,与连接到GPIO引脚并由按钮触发的LED同步闪烁。我用gpiozero做按钮和LED,tkinter做图形。当我从IDE运行它时,一切都很好 所有图像、形状、按钮、LED、窗口、画布和功能都已正确定义 以下是左闪烁灯的功能:Python 3.x 如何让脚本在包含tkinter窗口的启动时运行,python-3.x,tkinter,raspberry-pi,startupscript,Python 3.x,Tkinter,Raspberry Pi,Startupscript,我需要一个python脚本在启动时运行,这样当Raspberry Pi启动时,脚本就会启动。该脚本有一个Tk窗口和画布,其中有一个填充16:9显示的背景图像。在背景上的画布上画有一些形状 我已经成功地创建了项目的这一部分。它是一个带有闪烁箭头的仪表板显示屏,与连接到GPIO引脚并由按钮触发的LED同步闪烁。我用gpiozero做按钮和LED,tkinter做图形。当我从IDE运行它时,一切都很好 所有图像、形状、按钮、LED、窗口、画布和功能都已正确定义 以下是左闪烁灯的功能: def left
def left_blinker():
global left_arrow
if not left_LED.value:
left_LED.on()
elif left_LED.value:
left_LED.off()
if c.itemcget(left_arrow, "fill") == "black":
left_arrow = c.create_polygon(coords, bg="green")
elif c.itemcget(left_arrow, "fill") == "green":
left_arrow = c.create_polygon(coords, bg="black")
if left_button.value:
w.after(300 if left_led.value else 700, left_blinker)
当我从IDE运行它时,所有这些都可以完美地工作。它使用居中的背景图像和正确放置在GUI上的多边形(箭头)填充屏幕,按下按钮时同步闪烁,松开按钮时停止。python脚本按预期工作
当我从rc.local启动该文件时,它将在通电时自动运行,而不使用tkinter窗口,它可以工作-闪烁、LED等。但是,当我加上一个
w = Tk()
它根本不会自动运行。此脚本以
w.mainloop()
以下是rc.local中的条目:
python3 /home/pi/BMW_LR_lights &
exit 0
即使只有Tjk窗口的测试脚本也不会从rc.local运行。由于没有tkinter对象,所以其他一切都运行良好