def __init__(self, *args, **kwargs): super(App, self).__init__(*args, **kwargs) pic = QPixmap('qt_resources/maesure.png') splash = QSplashScreen(pic) #, Qt.WindowStaysOnTopHint) #splash.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint) splash.setMask(pic.mask()) splash.show() self.window = MainWindow() self.ui = Ui_main() self.window.ui = self.ui self.ui.setupUi(self.window) self.window.show() splash.finish(self.window)
def main(): path_icon = str(Path(__file__).parent / 'assets/openmc_logo.png') path_splash = str(Path(__file__).parent / 'assets/splash.png') app = QApplication(sys.argv) app.setOrganizationName("OpenMC") app.setOrganizationDomain("openmc.org") app.setApplicationName("OpenMC Plot Explorer") app.setWindowIcon(QtGui.QIcon(path_icon)) app.setAttribute(QtCore.Qt.AA_DontShowIconsInMenus, True) splash_pix = QtGui.QPixmap(path_splash) splash = QSplashScreen(splash_pix, QtCore.Qt.WindowStaysOnTopHint) splash.setMask(splash_pix.mask()) splash.show() app.processEvents() splash.setMask(splash_pix.mask()) splash.showMessage("Loading Model...", QtCore.Qt.AlignHCenter | QtCore.Qt.AlignBottom) app.processEvents() # load OpenMC model on another thread loader_thread = Thread(target=_openmcReload) loader_thread.start() # while thread is working, process app events while loader_thread.is_alive(): app.processEvents() splash.clearMessage() splash.showMessage("Starting GUI...", QtCore.Qt.AlignHCenter | QtCore.Qt.AlignBottom) app.processEvents() font_metric = QtGui.QFontMetrics(app.font()) screen_size = app.primaryScreen().size() mainWindow = MainWindow(font_metric, screen_size) # connect splashscreen to main window, close when main window opens mainWindow.loadGui() mainWindow.show() splash.close() # connect interrupt signal to close call signal.signal(signal.SIGINT, lambda *args: mainWindow.close()) # create timer that interrupts the Qt event loop # to check for a signal timer = QtCore.QTimer() timer.start(500) timer.timeout.connect(lambda: None) sys.exit(app.exec_())
file = QFile(file_path) file.open(QIODevice.ReadOnly) ts = QTextStream(file) string = ts.readAll() return string def progress_update(self, progress): self.progressBar.setValue(progress) if __name__ == '__main__': multiprocessing.freeze_support() app = QApplication(sys.argv) pixmap = QPixmap('ui_resources/cascade_splash.png') splash = QSplashScreen(pixmap) splash.setWindowFlags(Qt.WindowStaysOnTopHint) splash.setEnabled(False) splash.setMask(pixmap.mask()) splash.show() time.sleep(0.1) # This seems to fix the splash mask displaying but not the actual image app.processEvents() window = MainWindow() window.show() window.raise_() window.activateWindow() splash.finish(window) sys.exit(app.exec_())