rscder-pub/rscder/mul/mulstart.py
2023-04-17 13:05:10 +08:00

68 lines
2.4 KiB
Python

import sys
import time
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont, QPixmap
from PyQt5.QtWidgets import QSplashScreen, QProgressBar, QStyleFactory, QMessageBox
from qgis.core import QgsApplication
# from qgis.core import
from rscder.gui.mainwindow import MainWindow
import multiprocessing
from rscder.gui import license
from rscder.utils.setting import Settings
import os
BASE_DIR = os.environ['ECD_BASEDIR']
class MulStart:
def __init__(self, **kargs) -> None:
super(MulStart, self).__init__()
self.kargs = kargs
def run(self):
QgsApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
QgsApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
QgsApplication.setOrganizationName("西安理工大学-ImgSciGroup")
QgsApplication.setApplicationName("Easy Change Detection")
QgsApplication.setApplicationVersion("v0.0.1")
QgsApplication.setFont(QFont("Segoe UI", 10))
QgsApplication.setStyle(QStyleFactory.create("Fusion"))
# pyrcc5 res.qrc -o rc.py
# import rscder.rc
app = QgsApplication([], True)
QgsApplication.initQgis()
while not Settings.General().license:
QMessageBox.warning(None, "Warning", "Please select a license file.")
if(license.License().exec_() == license.License.Accepted):
continue
else:
sys.exit(0)
# Create and display the splash screen
splash_pix = QPixmap(os.path.join(BASE_DIR, "./icons/splash.png"))
# splash_pix.scaledToWidth(800)
# splash_pix.scaledToHeight(600)
splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint)
# splash
# splash.setFixedSize(800, 600)
progressBar = QProgressBar(splash)
progressBar.setMaximum(10)
progressBar.setTextVisible(False)
progressBar.setGeometry(106, splash_pix.height() - 60, splash_pix.width()-212, 10)
splash.show()
for i in range(1, 11):
progressBar.setValue(i)
t = time.time()
while time.time() < t + 0.05:
app.processEvents()
ex = MainWindow(**self.kargs)
# ex.canvas.load_image(r'data\100001678.jpg')
# ex.canvas.load_result_from_txt(r'data\100001678.txt')
# ex.showMaximized()
ex.show()
splash.finish(ex)
sys.exit(app.exec_())