Я новичок в PyQT. Недавно я столкнулся с ошибкой при попытке скопировать файлы, используя shutil в фоновом режиме при отображении графического интерфейса. Все элементы в диалоговом окне исчезают до завершения задачи. Я не знаю, выполняется ли GUI и внутренний Python одновременно, или мне нужно использовать поток, чтобы отделить фоновые задачи Python, такие как копирование или что-то длительное от GUI. Пожалуйста, посоветуйте мне, как решить эту проблему. Вот пример программы проблемы, с которой я сейчас сталкиваюсь,
import sys
import time
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(400, 89)
self.textLable = QtWidgets.QLabel(Dialog)
self.textLable.setGeometry(QtCore.QRect(20, 40, 361, 16))
self.textLable.setObjectName("textLable")
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.textLable.setText(_translate("Dialog", "Text"))
class Test(QtWidgets.QDialog, Ui_Dialog):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.setupUi(self)
self.QDialogDistrubs()
def QDialogDistrubs(self):
self.textLable.setText('Before Sleep')
self.show()
time.sleep(5) #shows as empty dialog coz of the sleep function
self.textLable.setText('elements in dialog disappeared')
time.sleep(2)
self.textLable.setText('Happend again elements disappeared...') #now the dialog will appear
app = QtWidgets.QApplication(sys.argv)
window = Test()
app.exec()