Я хочу увеличить скорость запуска моего приложения с графическим интерфейсом.У меня есть два импорта, которые я создал, которые загружаются некоторое время, и мне было интересно, можно ли импортировать их в отдельный QThread и иметь возможность доступа к ним в главном потоке?
class importThreadClass(QtCore.QThread):
def __init__(self, parent = None):
super().__init__(parent)
def run(self):
from ValveSim import ValveSimulation
from MetalSizing import MetalSizing
class ZVIApp(QMainWindow, Ui_MainWindow):
####initialize function
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.objectList = []
self.importThread = importThreadClass()
self.importThread.finished.connect(self.importThread_Finished)
def importThread_Finished(self):
try:
self.ms = MetalSizing() ### MetalSizing is not defined --this is from MetalSizing import
self.objectList.append(self.ms)
self.CreateMetalSizing()
self.hw.pushButton_3.clicked.connect(self.showms)
except:
errorFile = open('{0}\Error.txt'.format(CodeDirectory[-1]), 'a+')
errorFile.write(traceback.format_exc())
errorFile.close()
### i'd like for the MetalSizing window to be created as a subwindow not as a separate GUI
def CreateMetalSizing(self):
try:
self.subwindow = QMdiSubWindow()
self.subwindow.setWidget(self.objectList[0])
self.mdiArea.addSubWindow(self.subwindow)
self.objectList[0].tabWidget.setCurrentIndex(0)
self.subwindow.setMaximumSize(1100, 900)
self.subwindow.setWindowFlags(QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowMinimizeButtonHint | QtCore.Qt.WindowSystemMenuHint)
except:
errorFile = open('{0}\Error.txt'.format(CodeDirectory[-1]), 'a+')
errorFile.write(traceback.format_exc())
errorFile.close()
Я пробовал это на обычном поточном модуле, и он работает, но он создает окна за пределами mdiarea, что, как я полагаю, связано с тем, что его нет в основном потоке.Любые советы или подсказки о том, как я могу это сделать?