-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSCA-Studio.pyw
52 lines (43 loc) · 1.61 KB
/
SCA-Studio.pyw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import ctypes
import os
import sys
from PySide6.QtCore import QFile, QIODevice, Qt
from PySide6.QtGui import QGuiApplication, QIcon
from PySide6.QtUiTools import QUiLoader
from PySide6.QtWidgets import QApplication
from app.ui.menubar import MenubarUi
from app.ui.positioning import PositioningUi
from app.ui.oscilloscope import OscilloscopeUi
from app.ui.acquisition import AcquisitionUi
from app.utils.devices import Devices
if __name__ == "__main__":
# Initialize the app
QGuiApplication.setHighDpiScaleFactorRoundingPolicy(Qt.HighDpiScaleFactorRoundingPolicy.Round)
loader = QUiLoader()
app = QApplication(sys.argv)
app.setStyle("fusion")
app.setWindowIcon(QIcon("logo.ico"))
# Set AppUserModelIDs on Windows, which allow our custom WindowIcon to appear in the taskbar
if hasattr(ctypes, "windll"):
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("SCA_Studio.SCA_Studio")
# Force current directory to app directory
os.chdir(os.path.dirname(__file__))
# Load the Qt ui
ui_file = QFile("ui/main.ui")
if not ui_file.open(QIODevice.ReadOnly):
print(f"Cannot open main.ui: {ui_file.errorString()}")
sys.exit(-1)
window = loader.load(ui_file)
ui_file.close()
if not window:
print(loader.errorString())
sys.exit(-1)
# Initialize ui components
devices = Devices()
menubar = MenubarUi(app, window, devices)
positioning = PositioningUi(window, devices)
oscilloscope = OscilloscopeUi(window, devices)
acquisition = AcquisitionUi(window, devices)
# Run the app
window.show()
sys.exit(app.exec())