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