Я создал экран загрузки, который должен появляться, когда я нажимаю кнопку, запускающую указанный сценарий c, выполняемый функцией run_script () в приведенном ниже коде, и исчезает при выполнении сценарий завершен, и вызывается функция show_popup () . Я использовал для этого QMov ie, к сожалению, Qwidget появляется нормально при нажатии кнопки и вызывается функция run_script () , но изображение загрузочного gif не появляется внутри виджета, но он появляется после завершения выполнения скрипта. Я пропустил stopAnimation () для проверки, чтобы увидеть, нормально ли отображается виджет Загрузка:
class LoadingScreen(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setFixedSize(100, 100)
self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.CustomizeWindowHint)
self.label_animation = QLabel(self)
# self.label_animation.setStyleSheet("""{ background-image: url('./Icons/Pulse-1s-100px.gif');}""")
self.movie= QMovie('./Icons/Pulse-1s-100px.gif')
self.label_animation.setMovie(self.movie)
# self.label_animation.setPixmap(QtGui.QPixmap("./Icons/Pulse-1s-100px.gif"))
# timer= QTimer(self)
# timer.singleShot(3000,self.stopAniamtion)
self.show()
def startAnimation(self):
self.movie.start()
# def stopAniamtion(self):
# self.movie.stop()
# self.close()
def run_script(self):
self.loading_screen= LoadingScreen()
self.loading_screen.startAnimation()
def show_popup(self, state):
# self.loading_screen.stopAniamtion()
, когда я нажимаю кнопку, вызывается run_script () виджет появляется, но внутри ничего нет. После того, как скрипт завершил выполнение, загрузочный gif появляется внутри виджета. Я думаю, что функция run_script () работает быстрее, чем загрузка GIF-файла внутри виджета.