diff --git a/hp4194/cv_qt_inteface.py b/hp4194/cv_qt_inteface.py
index dd3d90980ead2e0c92c395c3231ebadb8deb97f2..81758a5018a9c231aa3515b7627a9399b6007092 100644
--- a/hp4194/cv_qt_inteface.py
+++ b/hp4194/cv_qt_inteface.py
@@ -16,6 +16,26 @@ class MplCanvas(FigureCanvasQTAgg):
         self.axes = fig.subplots(nrows=2,ncols=3)
         super().__init__(fig)
 
+class Worker(Qobject):
+    finished = pyqtSignal()
+    progress = pyqtSignal(int)
+
+    def run():
+        for i in range(20):
+            self.xdata = list(range(20))
+            for i in range(2):
+                for j in range(3):
+                    self.sc.axes[i,j].cla()  # Clear the canvas.
+                    self.sc.axes[i,j].plot(self.xdata,random.sample(range(50),20))  
+
+            # Trigger the canvas to update and redraw.
+            self.sc.draw_idle()
+            time.sleep(1)
+
+            print("finished")
+      
+
+
 class MainWinow(QMainWindow):
     def __init__(self):
         super().__init__()
@@ -216,20 +236,25 @@ class MainWinow(QMainWindow):
     def toolbar_button_clicked(self):
         self.widget.setEnabled(False)
         self.toolbar.setEnabled(False)
-              
+        
+        # Step 2: Create a QThread object
+        self.thread = QThread()
+        # Step 3: Create a worker object
+        self.worker = Worker()
+        # Step 4: Move worker to the thread
+        self.worker.moveToThread(self.thread)
+        # Step 5: Connect signals and slots
+        self.thread.started.connect(self.worker.run)
+        self.worker.finished.connect(self.thread.quit)
+        self.worker.finished.connect(self.worker.deleteLater)
+        self.thread.finished.connect(self.thread.deleteLater)
+        self.worker.progress.connect(self.reportProgress)
+        # Step 6: Start the thread
+        self.thread.start()
 
-        self.xdata = list(range(20))
-        for i in range(2):
-            for j in range(3):
-                self.sc.axes[i,j].cla()  # Clear the canvas.
-                self.sc.axes[i,j].plot(self.xdata,random.sample(range(50),20))  
-    
-        # Trigger the canvas to update and redraw.
-        self.sc.draw_idle()
-    
-        print("finished")
-        #self.widget.setEnabled(True)
-        #self.toolbar.setEnabled(True)
+        
+        self.widget.setEnabled(True)
+        self.toolbar.setEnabled(True)
         
 
 app= QApplication(sys.argv)