From be801f30e890064cbdd7610c4c3323b540ca0995 Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Thu, 5 Oct 2023 11:50:12 +0200 Subject: [PATCH] gui: make common_qt compatible with both Qt5 and Qt6 --- electrum/gui/common_qt/plugins.py | 7 ++++++- electrum/gui/qml/__init__.py | 1 + electrum/gui/qt/__init__.py | 1 + electrum/plugins/trustedcoin/common_qt.py | 6 +++++- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/electrum/gui/common_qt/plugins.py b/electrum/gui/common_qt/plugins.py index 3403be027..0934477b4 100644 --- a/electrum/gui/common_qt/plugins.py +++ b/electrum/gui/common_qt/plugins.py @@ -1,4 +1,9 @@ -from PyQt6.QtCore import pyqtSignal, pyqtProperty, QObject # TODO: common code, Qt5/Qt6 mismatch! +import sys + +if getattr(sys, '_GUI_QT_VERSION') == 5: # FIXME: remove when both desktop and mobile are Qt6 + from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject +else: + from PyQt6.QtCore import pyqtSignal, pyqtProperty, QObject from electrum.logging import get_logger diff --git a/electrum/gui/qml/__init__.py b/electrum/gui/qml/__init__.py index 53e87c2e5..35926cb70 100644 --- a/electrum/gui/qml/__init__.py +++ b/electrum/gui/qml/__init__.py @@ -16,6 +16,7 @@ except Exception: from PyQt6.QtCore import (Qt, QCoreApplication, QLocale, QTranslator, QTimer, QT_VERSION_STR, PYQT_VERSION_STR) from PyQt6.QtGui import QGuiApplication +sys._GUI_QT_VERSION = 6 # used by gui/common_qt from electrum.i18n import _ from electrum.plugin import run_hook diff --git a/electrum/gui/qt/__init__.py b/electrum/gui/qt/__init__.py index 025eca2e8..94c75fc8c 100644 --- a/electrum/gui/qt/__init__.py +++ b/electrum/gui/qt/__init__.py @@ -42,6 +42,7 @@ from PyQt5.QtGui import QGuiApplication from PyQt5.QtWidgets import QApplication, QSystemTrayIcon, QWidget, QMenu, QMessageBox from PyQt5.QtCore import QObject, pyqtSignal, QTimer, Qt import PyQt5.QtCore as QtCore +sys._GUI_QT_VERSION = 5 # used by gui/common_qt try: # Preload QtMultimedia at app start, if available. diff --git a/electrum/plugins/trustedcoin/common_qt.py b/electrum/plugins/trustedcoin/common_qt.py index c960d5240..31b9954e7 100644 --- a/electrum/plugins/trustedcoin/common_qt.py +++ b/electrum/plugins/trustedcoin/common_qt.py @@ -1,9 +1,13 @@ import threading import socket import base64 +import sys from typing import TYPE_CHECKING -from PyQt6.QtCore import pyqtSignal, pyqtProperty, pyqtSlot # TODO: common code, Qt5/Qt6 mismatch! +if getattr(sys, '_GUI_QT_VERSION') == 5: # FIXME: remove when both desktop and mobile are Qt6 + from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot +else: + from PyQt6.QtCore import pyqtSignal, pyqtProperty, pyqtSlot from electrum.i18n import _ from electrum.bip32 import BIP32Node