tkinter退出时关闭串行连接

2024-04-28 19:59:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用arduino初始化了一个串行连接

ser = serial.Serial(port = COMPort, baudrate=9600, timeout=0.1)

但是,当我关闭应用程序时,arduino上与连接相关的LED保持打开状态。这意味着串行连接仍处于活动状态

退出应用程序时,如何自动关闭串行连接


Tags: 应用程序ledport状态timeoutserialarduinoser
1条回答
网友
1楼 · 发布于 2024-04-28 19:59:19

有两种方法可以实现这一点,一种是将代码放在mainloop()(正如acw1668已经提到的)下面,另一种是使用wm_protocol

方法1: 只要窗口保持活动状态,mainloop()之后的任何代码都将暂停,因此将代码放置在mainloop()之后将在窗口关闭后执行

root.mainloop()

ser.close()

方法2: 当您尝试“删除”窗口或关闭窗口时,会触发此协议。因此,您可以将一个函数绑定到此,并要求它关闭窗口,然后关闭连接,如下所示:

def close():
    root.destroy() # Close the window
    ser.close() # Then the connection

root.wm_protocol('WM_DELETE_WINDOW',close) # Assuming root = Tk()

相关问题 更多 >