From b39332d6366fb8413489a2a64c105c0f1c70058e Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Sun, 7 Apr 2024 08:22:30 +0200 Subject: [PATCH] Probe for both, PySide6 as well as PySide2 The GUI is supposed to work on both versions. --- src/python/adgui.py | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/src/python/adgui.py b/src/python/adgui.py index d4cc04fd..a5ff8912 100755 --- a/src/python/adgui.py +++ b/src/python/adgui.py @@ -256,11 +256,29 @@ def synthesize_fuse(config: list, fuse: str, vallist: list) -> int: resval |= thisval return resval -from PySide2.QtWidgets import * -from PySide2.QtGui import * -from PySide2.QtCore import * -from PySide2.QtUiTools import QUiLoader -from functools import partial +# actual GUI part starts here + +global pyside +try: + from PySide6.QtWidgets import * + from PySide6.QtGui import * + from PySide6.QtCore import * + from PySide6.QtUiTools import QUiLoader + from functools import partial + pyside = 6 +except ModuleNotFoundError: + try: + from PySide2.QtWidgets import * + from PySide2.QtGui import * + from PySide2.QtCore import * + from PySide2.QtUiTools import QUiLoader + from functools import partial + pyside = 2 + except ModuleNotFoundError: + print("Neither PySide6 (Qt6) nor PySide2 (Qt5) found, cannot create a GUI.", + file = sys.stderr) + sys.exit(1) + class EnterFilter(QObject): '''Filters and events''' @@ -1638,7 +1656,12 @@ considered a pattern that will be replaced by the `fuse`*N* name. def main(): gui = adgui(sys.argv) - sys.exit(gui.app.exec_()) + global pyside + if pyside == 6: + # PySide6 deprecated the exec_ method + sys.exit(gui.app.exec()) + else: + sys.exit(gui.app.exec_()) if __name__ == "__main__": main()