spesmilo / electrum

Electrum Bitcoin Wallet
https://electrum.org
MIT License
7.4k stars 3.08k forks source link

Electrum GUI does not render correctly with qt 5.15 #6205

Open NullSense opened 4 years ago

NullSense commented 4 years ago

Specs:

Basically electrum takes a very long time to start on qt version 5.15.* and when it does, the GUI is borked.

Non working qt package versions ❯ pacman -Qs qt local/avahi 0.8+15+ge8a3dd0-1 Service Discovery for Linux using mDNS/DNS-SD -- compatible with Bonjour local/qt5-base 5.15.0-1 (qt qt5) A cross-platform application and UI framework local/qt5-declarative 5.15.0-1 (qt qt5) Classes for QML and JavaScript languages local/qt5-location 5.15.0-1 (qt qt5) Provides access to position, satellite and area monitoring classes local/qt5-svg 5.15.0-1 (qt qt5) Classes for displaying the contents of SVG files local/qt5-wayland 5.15.0-1 (qt qt5) Provides APIs for Wayland local/qt5-webchannel 5.15.0-1 (qt qt5) Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients local/qt5-webengine 5.15.0-1 (qt qt5) Provides support for web applications using the Chromium browser project local/qtkeychain 0.10.0-2 Provides support for secure credentials storage
Working qt package versions ❯ pacman -Qs qt local/avahi 0.8+15+ge8a3dd0-1 Service Discovery for Linux using mDNS/DNS-SD -- compatible with Bonjour local/python-pyqt5 5.14.2-1 (pyqt5) A set of Python bindings for the Qt5 toolkit local/python-pyqt5-sip 12.8.0-1 The sip module support for PyQt5 local/python-qdarkstyle 2.8.1-1 Dark style sheet for QtWidgets application local/python-qtpy 1.9.0-3 Provides an uniform layer to support PyQt5, PyQt4 and PySide with a single codebase local/qt5-base 5.14.2-3 (qt qt5) A cross-platform application and UI framework local/qt5-declarative 5.14.2-1 (qt qt5) Classes for QML and JavaScript languages local/qt5-location 5.14.2-2 (qt qt5) Provides access to position, satellite and area monitoring classes local/qt5-svg 5.14.2-1 (qt qt5) Classes for displaying the contents of SVG files local/qt5-wayland 5.14.2-1 (qt qt5) Provides APIs for Wayland local/qt5-webchannel 5.14.2-1 (qt qt5) Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients local/qt5-webengine 5.14.2-3 (qt qt5) Provides support for web applications using the Chromium browser project local/qtkeychain 0.10.0-2 Provides support for secure credentials storage
SomberNight commented 4 years ago

I have tried to install the pyqt5 wheel from pypi for 5.15.0 but could not get it to work on Ubuntu 20.04.

I | gui.qt.ElectrumGui | Qt GUI starting up... Qt=5.15.0, PyQt=5.15.0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.

Aborted (core dumped)

Note that I have libxkbcommon-x11-0 installed.

$ sudo apt-get install libxkbcommon-x11-0
[sudo] password for user: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libxkbcommon-x11-0 is already the newest version (0.10.0-1).

see this comment:

The Qt xcb plugin depends on the libQt5XcbQpa.so library. For some reason this library in not packaged in the PyQt5 wheel, so it tries to use the one from system's Qt, which is incompatible.

pyqt5==5.14.2 from pip works.