compatibility fix: PyQt6
authorNiki Roo <niki@nikiroo.be>
Thu, 27 Mar 2025 20:43:19 +0000 (21:43 +0100)
committerNiki Roo <niki@nikiroo.be>
Thu, 27 Mar 2025 20:43:19 +0000 (21:43 +0100)
gamiki-qt.py
gamiki/qt/__init__.py [new file with mode: 0644]
gamiki/qt/imports.py [new file with mode: 0644]
gamiki/qt/tiles.py

index 97ba1f07def72c131b8a27fbab88562e3f35750b..4d4991a78cdda221ea7a38b2c0a7af83f783afe4 100755 (executable)
@@ -2,22 +2,8 @@
 
 from sys import argv, stderr, exit
 
-try:
-    from PyQt6.QtGui     import QIcon
-    from PyQt6.QtCore    import *
-    from PyQt6.QtWidgets import *
-    print("Running on PyQt6", file=stderr)
-except:
-    try:
-        # apt-get install python3-pyqt5
-        from PyQt5.QtGui     import QIcon
-        from PyQt5.QtCore    import *
-        from PyQt5.QtWidgets import *
-        print("Running on PyQt5", file=stderr)
-    except:
-        from PyQt4.QtGui  import *
-        from PyQt4.QtCore import *
-        print("Running on PyQt4", file=stderr)
+from gamiki.qt.imports import *
+print(f"Running on {pyqt_version}", file=stderr)
 
 from gamiki          import Builder, Library
 from gamiki.qt.utils import start
diff --git a/gamiki/qt/__init__.py b/gamiki/qt/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gamiki/qt/imports.py b/gamiki/qt/imports.py
new file mode 100644 (file)
index 0000000..23dcea3
--- /dev/null
@@ -0,0 +1,22 @@
+pyqt_version = ""
+try:
+    from PyQt6.QtCore    import *
+    from PyQt6.QtWidgets import *
+    from PyQt6.QtGui     import *
+    Qt.AlignRight = Qt.AlignmentFlag.AlignCenter
+    Qt.WA_TransparentForMouseEvents = (
+        Qt.WidgetAttribute.WA_TransparentForMouseEvents
+    )
+    QApplication.exec_ = QApplication.exec
+    pyqt_version = "PyQt6"
+except:
+    try:
+        from PyQt5.QtCore    import *
+        from PyQt5.QtWidgets import *
+        from PyQt5.QtGui     import *
+        pyqt_version = "PyQt5"
+    except:
+        from PyQt4.QtCore    import *
+        from PyQt4.QtGui     import *
+        pyqt_version = "PyQt4"
+
index 55c6143f2f7c11bba0cf32cca36cb42d889e8fdb..3c2fcab0c776c71bc08ea2b9701a829d60bf9cda 100755 (executable)
@@ -6,20 +6,8 @@ from sys     import argv, exit
 from enum    import IntFlag
 from pathlib import PurePath
 
-try:
-    from PyQt6.QtCore    import *
-    from PyQt6.QtWidgets import *
-    from PyQt6.QtGui     import QPixmap
-except:
-    try:
-        from PyQt5.QtCore    import *
-        from PyQt5.QtWidgets import *
-        from PyQt5.QtGui     import QPixmap
-    except:
-        from PyQt4.QtCore    import *
-        from PyQt4.QtGui     import *
-
 from gamiki                import Game
+from gamiki.qt.imports     import *
 from gamiki.qt.utils       import makeMouseAware
 from gamiki.qt.flow_layout import FlowLayout