Как я могу скрыть GIF-файл QMovie?

Я пытаюсь сделать загрузку пользовательского интерфейса. Я хочу показать пользовательский интерфейс загрузки, когда операция начинается в потоке, и когда операции потока завершены, я хочу скрыть пользовательский интерфейс загрузки.

      class TableThread(QThread):
    set_signal = pyqtSignal(int)
    stop_signal = pyqtSignal()

    def __init__(self, parent):
        super().__init__(parent)

    def run(self):
        for i in range(10):
            time.sleep(0.5)
            self.set_signal.emit(i)
        self.stop_signal.emit()

class Test(QDialog, form_settings_ui):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.tableWidget.setRowCount(0)
        self.movie = QMovie('loading.gif', QByteArray(), self)
        self.movie.setCacheMode(QMovie.CacheAll)
        self.label.setMovie(self.movie)

        self.pushButton.clicked.connect(self.clicked_push_button)

    def set_table_list(self, i):
        self.tableWidget.insertRow(i)
        self.tableWidget.setItem(i, 0, QTableWidgetItem(str(i)))
        self.tableWidget.setItem(i, 1, QTableWidgetItem(str(i)))
        self.tableWidget.resizeColumnsToContents()

    def clicked_push_button(self):

        self.table_thread = TableThread(self)
        self.table_thread.set_signal.connect(self.set_table_list)
        self.table_thread.stop_signal.connect(self.stop_loading)
        self.table_thread.start()
        self.movie.start()

    def stop_loading(self):
        self.movie.stop()
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        perforce_ui_window = Test()
        perforce_ui_window.show()
        app.exec_()

Это тестовый код.

Я вставил код self.movie.stop(), но он просто перестал двигаться, он не исчез.

0 ответов

Другие вопросы по тегам