Функция анимации в классе вызывается из потока не работает - PullRequest
0 голосов
/ 24 мая 2018

У меня есть файл пользовательского интерфейса qt5, который я загружаю через класс с функциями постепенного появления / исчезновения:

class LoadingScreen(QWidget):
    def __init__(self):
        super(LoadingScreen, self).__init__()
        loader = QUiLoader()
        file = QFile("loading_screen.ui")
        file.open(QFile.ReadOnly)
        global loading_screen
        loading_screen = loader.load(file, self)
        file.close()
        self.initUI()

    def fadeIN(self):
        self.fade_in = QPropertyAnimation(self,"windowOpacity")
        self.fade_in.setDuration(500)
        self.fade_in.setStartValue(0.0)
        self.fade_in.setEndValue(1.0)
        self.fade_in.setEasingCurve(QEasingCurve.InBack)
        self.fade_in.start()
        self.show()

    def fadeOUT(self):
        self.fade_out = QPropertyAnimation(self,"windowOpacity")
        self.fade_out.setDuration(500)
        self.fade_out.setStartValue(1.0)
        self.fade_out.setEndValue(0.0)
        self.fade_out.setEasingCurve(QEasingCurve.OutBack)
        self.fade_out.start()

Я загружаю его с помощью:

global loading_screen_window
loading_screen_window = LoadingScreen()

Затем я запускаю поток, который выполняет некоторые вещи, такие как чтение конфигурации:

config_thread = config(1,"config",1)
config_thread.start()

Работает нормально, в определенный момент в потоке я хочу вызвать функцию затухания моего класса LoadingScreen ().Функция выполняется, но анимация не работает?Что я делаю неправильно?Вызов формы функции исчезновения в другом месте работает, но не в моем потоке.

Я использую Python 2.7, Qt5 и PySide2.

Спасибо за вашу помощь !!

1 Ответ

0 голосов
/ 25 мая 2018

Я нашел решение:

class LoadingScreen(QWidget):
    def __init__(self):
        super(LoadingScreen, self).__init__()
        loader = QUiLoader()
        file = QFile("loading_screen.ui")
        file.open(QFile.ReadOnly)
        global loading_screen
        loading_screen = loader.load(file, self)
        file.close()
        self.initUI()

        #Config Thread starten
        self.config_thread = config()
        self.config_thread.finished.connect(self.fadeOUT)
        self.config_thread.start()

Спасибо за вашу помощь eyllanesc:)

...