From 1a54de4350d373fcbcce5d51c4ca038975a2586c Mon Sep 17 00:00:00 2001 From: Nicolas Hiillos Date: Mon, 14 Nov 2022 12:56:43 +0200 Subject: [PATCH] Improve Tkinter exit --- src/draw_svg/src/py/drawing_surface.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/draw_svg/src/py/drawing_surface.py b/src/draw_svg/src/py/drawing_surface.py index c303b02..8ba3a62 100755 --- a/src/draw_svg/src/py/drawing_surface.py +++ b/src/draw_svg/src/py/drawing_surface.py @@ -16,6 +16,7 @@ import tkinter as tk import math import threading +import atexit def translate(val, lmin, lmax, rmin, rmax): lspan = lmax - lmin @@ -68,6 +69,9 @@ class LogPen(Node): callback_group=self._callback_group, ) self.get_logger().info("Initialization successful.") + #atexit.register(self.cleanup) + #def cleanup(self): + #app.quit() def pen_position_callback(self, msg: Odometry): """ @@ -90,7 +94,7 @@ def main(args=None): rclpy.shutdown() exit(0) -def log_thread(queue=Queue()): +def start_log_thread(queue=Queue()): rclpy.init() @@ -98,10 +102,10 @@ def log_thread(queue=Queue()): executor = rclpy.executors.MultiThreadedExecutor(2) executor.add_node(log_pen) - executor.spin() + #executor.spin() - rclpy.shutdown() - exit(0) + #rclpy.shutdown() + #exit(0) if __name__ == "__main__": @@ -109,13 +113,18 @@ if __name__ == "__main__": q = Queue() - thread0 = threading.Thread(target=log_thread, args=[q]) - thread0.start() + global app + app = DrawingApp(q) + + global log_thread + log_thread = threading.Thread(target=start_log_thread, args=[q]) + log_thread.start() #thread0.join() #thread1 = threading.Thread(target=DrawingApp().mainloop) #thread1.start() #thread1.join() - app = DrawingApp(q) app.mainloop() + rclpy.shutdown() + exit(0)