| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import sys
- import os
- from PyQt5 import QtWidgets
- from PyQt5.QtCore import QSettings, Qt
- from App_Main import App
- from AppGUI import VisPyPatches
- from multiprocessing import freeze_support
- # import copyreg
- # import types
- if sys.platform == "win32":
- # cx_freeze 'module win32' workaround
- pass
- MIN_VERSION_MAJOR = 3
- MIN_VERSION_MINOR = 5
- def debug_trace():
- """
- Set a tracepoint in the Python debugger that works with Qt
- :return: None
- """
- from PyQt5.QtCore import pyqtRemoveInputHook
- # from pdb import set_trace
- pyqtRemoveInputHook()
- # set_trace()
- if __name__ == '__main__':
- # All X11 calling should be thread safe otherwise we have strange issues
- # QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_X11InitThreads)
- # NOTE: Never talk to the GUI from threads! This is why I commented the above.
- freeze_support()
- major_v = sys.version_info.major
- minor_v = sys.version_info.minor
- # Supported Python version is >= 3.5
- if major_v >= MIN_VERSION_MAJOR:
- if minor_v >= MIN_VERSION_MINOR:
- pass
- else:
- print("FlatCAM BETA uses PYTHON 3 or later. The version minimum is %s.%s\n"
- "Your Python version is: %s.%s" % (MIN_VERSION_MAJOR, MIN_VERSION_MINOR, str(major_v), str(minor_v)))
- if minor_v >= 8:
- os._exit(0)
- else:
- sys.exit(0)
- else:
- print("FlatCAM BETA uses PYTHON 3 or later. The version minimum is %s.%s\n"
- "Your Python version is: %s.%s" % (MIN_VERSION_MAJOR, MIN_VERSION_MINOR, str(major_v), str(minor_v)))
- sys.exit(0)
- debug_trace()
- VisPyPatches.apply_patches()
- # apply High DPI support
- settings = QSettings("Open Source", "FlatCAM")
- if settings.contains("hdpi"):
- hdpi_support = settings.value('hdpi', type=int)
- else:
- hdpi_support = 0
- if hdpi_support == 2:
- os.environ["QT_AUTO_SCREEN_SCALE_FACTOR"] = "1"
- else:
- os.environ["QT_AUTO_SCREEN_SCALE_FACTOR"] = "0"
- # if hdpi_support == 2:
- # tst_screen = QtWidgets.QApplication(sys.argv)
- # if tst_screen.screens()[0].geometry().width() > 1930 or tst_screen.screens()[1].geometry().width() > 1930:
- # QGuiApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)
- # del tst_screen
- # else:
- # QGuiApplication.setAttribute(Qt.AA_EnableHighDpiScaling, False)
- if hdpi_support == 2:
- QtWidgets.QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)
- else:
- QtWidgets.QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, False)
- app = QtWidgets.QApplication(sys.argv)
- # apply style
- settings = QSettings("Open Source", "FlatCAM")
- if settings.contains("style"):
- style = settings.value('style', type=str)
- app.setStyle(style)
- fc = App()
- sys.exit(app.exec_())
- # app.exec_()
|