I am trying to embed a matplotlib canvas into a PySide2 application. I have tried to use this example: https://matplotlib.org/examples/user_interfaces/embedding_in_qt5.html
The example runs fine using PyQt5. However, if I change line 19 from
from PyQt5 import QtCore, QtWidgets
into
from PySide2 import QtCore, QtWidgets
then Python crashes with the message
Fatal Python error: deallocating None
as soon as the application window is closed. Is there any way to get this working properly using PySide2?
It turns out that this was a bug in PySide2, which now has been fixed (see https://bugreports.qt.io/browse/PYSIDE-632?gerritReviewStatus=All). Just update to the most current version to get rid of the problem.
Related
I have a PySide2 application, which doesn't run on Spyder due to some issues. However, PyQt5 runs fine. I would like to run the application in Spyder with PyQt5 but outside (console) with PySide2. I don't want to replace packages with search and replace at every deployment/development switch.
Checking with if 'dev' in sys.argv: works fine. However, problem is that I have files to be imported with inheritance classes inheriting classes from PySide2/PyQt5. e.g. Main.py inherits Dialog.py, which has a class Dialog(QDialog):. QDialog requires an import but I can't import PySide2 or PyQt5 in that file at that moment. I also can't pass any argument to the imported file afaik.
Is there any way to deal with such issues?
Basically I solved by checking arguments:
if 'dev' in sys.argv:
import PyQt5
else:
import PySide2
Then at every file, where I need to make a similar decision:
if 'PySide2' in sys.modules:
from PySide2 import QtCore, QtGui, QtWidgets
else:
from PyQt5 import QtCore, QtGui, QtWidgets
class Dialog(QtWidgets.QDialog):
...
When I run the main script with dev argument:
python main.py dev
then it runs with PyQt5, otherwise with PySide2
PS: This also works with cx_freeze excluding PyQt5 package, without any error.
I am using macOS Big Sur beta currently. I have been able to download the libraries via Pycharm 2020.1.2 however, when running my program, no window appears to show what I've been working on.
Example:
Here is a simple line of code I've gotten as an example.
import sys
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication([])
label = QLabel('Welcome to PYQT5 Tester')
label.show()
app.exec_()
When I run the app, there are no errors and the sole description is my file directory. I am really confused to if I haven't installed anything but any help would be appreciated.
Went down to PyQt5==5.13 and it's working for me now.
I am new to PyQt and am currently working on a project which is was written in PyQt4. I need to update it to PyQt5 and have done most of it. However, when it comes to PyKDE, it generates the following error:
from PyKDE4.kdeui import KVBox, KHBox, KColorButton
RuntimeError: the PyQt4.QtCore and PyQt5.QtCore modules both wrap the QObject class
The code line using PyKDE4 is:
from PyKDE4.kdeui import KVBox, KHBox, KColorButton
Basically most of the code is already in PyQt5, but I haven't found a translation for PyKDE4. Anyone can help?
I am very new to using PyQt4. So far, i have used QtDesigner to create the GUI windows i shall be using for my program.
However, when i run the first bit of python coding to get the user interface to appear, i get an error i cannot find a solution to.
Here's the code:
import sys, os
from PyQt4 import QtCore, QtGui, uic
form_class = uic.loadUiType("HomeScreen.ui") [0]
All i am trying to do with this is to load a GUI, which is called 'HomeScreen.ui'.
Upon running this code, the python shell returns an error saying:
from PyQt4 import QtCore, QtGui, uic
ImportError: No module named 'PyQt4'
I have Python 3.5 installed, as well as PyQt v4.11.4 and PyQt5.6.
'QtGui' and 'QtCore' are both saved in a folder called PyQt4 (and PyQt5), which are both stored in the path:
C:\Program Files (x86)\Python\Python35-32\Lib\site-packages
I believe this is where third party modules are supposed to be stored, but python can never find the module and i repeatedly get the same error message.
Any help would be appreciated.
I also work in windows and python 3,just run the execute file to install pyqt:
https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.6/
it works well in my environment
I have python 2.7 under windows x64, I have been trying to make a simple GUI using PyQt4, like this:
from PyQt4 import *
from ui_mainwindow import Ui_MainWindow
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
when I run the program I have this error: " No module named ui_mainWindow"
-I have pyqt4 installed
- I have tried to replace um_mainwindow with ui_simple and clientGUI but the same error resulted.
What am I doing wrong and how to fix this?
thank you
As far as I know, ui_mainWindow is a python file generated by some Qt Tool, that transforms .ui file from QtDesigner to Python class.
I have no real experience with PyQT, but I know both C++/Qt and python. In C++/Qt QtCreator does the job of transforming .ui file to C++ class, but probably in python You need to do this Yourself.