*pyqt cant use append on QTextBrowser on other classes

Viewed 14

i created an ui with two Qpushbuttons (btntest, btntest_2) and one Qtextbroswer (test). what i wanna do is when i click btntest , it goes to worker1.run and append texts to the qtextbrowser but whenever i click btntest it will just crashes. can you tell me what im missing?

import time as time
import win32gui, win32ui, win32con
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5 import QtCore
from PyQt5.QtTest import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *



form_class = uic.loadUiType("test.ui")[0]


class WindowClass(QMainWindow, form_class) :
    def __init__(self) :
        super().__init__()
        self.setupUi(self)

        self.btntest.clicked.connect(self.btntestfunction)
        self.btntest_2.clicked.connect(self.btntest2function)
        self.worker = Worker1()
    
    def sleep(self,n):
        self.test.append("sleeping")
        QTest.qWait(n*1000)

    
    def btntestfunction(self):
        self.test.append("start")
        self.sleep(2)
        self.worker.start()

    
    def btntest2function(self):
        self.test.append("pause")
        self.worker.pause()


class Worker1(QThread):
    def __init__(self):
        super().__init__()
        self.running = True

    def run(self):
        self.running = True
        while self.running:
            self.test.append("hello")  # where the program crashes,

            self.sleep(5) # sleep function works but *self.test.append("sleeping") wont 
                             appear

    def pause(self):
        self.running = False


    
if __name__ == "__main__" :

    app = QApplication(sys.argv)

    myWindow = WindowClass()

    myWindow.show()

    app.exec_()
0 Answers
Related