from PyQt5 import QtWidgets from PyQt5 import QtCore from PyQt5.QtCore import pyqtSlot, pyqtSignal, QThread, QObject #import mainwindow #import time import sys class MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(469, 433) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.next_button = QtWidgets.QPushButton(self.centralwidget) self.next_button.setObjectName("next_button") MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.next_button.setText(_translate("MainWindow", "Следующая")) class ListenThread(QThread): signal = pyqtSignal() def init(self): QThread.init(self) def del(self): self.wait() def run(self): while True: self.signal.emit() print("test1") self.sleep(1) class App(QtWidgets.QMainWindow, MainWindow): def init(self): super().init() self.setupUi(self) self.nextbutton.clicked.connect(self.gig) def gig(self): print("test2") def startAi(self): listener = ListenThread() listener.signal.connect(self.gig) listener.start() def main(): app = QtWidgets.QApplication(sys.argv) window = App() window.show() window.startAi() sys.exit(app.exec()) if name == 'main': main() How to make a constant flow? When I start it just hangs (.