2024-04-28 19:59:19 发布
网友
我已经使用arduino初始化了一个串行连接
ser = serial.Serial(port = COMPort, baudrate=9600, timeout=0.1)
但是,当我关闭应用程序时,arduino上与连接相关的LED保持打开状态。这意味着串行连接仍处于活动状态
退出应用程序时,如何自动关闭串行连接
有两种方法可以实现这一点,一种是将代码放在mainloop()(正如acw1668已经提到的)下面,另一种是使用wm_protocol
mainloop()
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()
有两种方法可以实现这一点,一种是将代码放在
mainloop()
(正如acw1668已经提到的)下面,另一种是使用wm_protocol
方法1: 只要窗口保持活动状态,
mainloop()
之后的任何代码都将暂停,因此将代码放置在mainloop()
之后将在窗口关闭后执行方法2: 当您尝试“删除”窗口或关闭窗口时,会触发此协议。因此,您可以将一个函数绑定到此,并要求它关闭窗口,然后关闭连接,如下所示:
相关问题 更多 >
编程相关推荐