I'm a newbie, so excuses before... I deliberately wanted to create objects (widgets) from a different thread, but pyqt5 doesn't let me do that, here's the error I'm getting,
QObject::setParent: Cannot set parent, new parent is in a different thread
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QApplication(0x1ce1e54e590), parent's thread is QThread(0x1ce1e457a50), current thread is QThread(0x1ce1fee2e50)
Here's my code... Is there a way to resolve this ?
from PyQt5 import QtCore, QtGui, QtWidgets
import threading
import sys
class Ui_MainWindow(object):
def __init__(self):
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.thread = threading.Thread(target = self.func)
def func(self):
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser.setGeometry(QtCore.QRect(170, 160, 256, 192))
self.textBrowser.setObjectName("textBrowser")
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget.setObjectName("centralwidget")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.thread.start()
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Thanks in advance :)