I am getting an error when trying to open a pyqt5 GUI in another file.
main.py
from main_scrn import Ui_MainWindow
from sload_page import Ui_SLoadWindow
from PySide2.QtWidgets import *
class SLoadWindow(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
self.ui = Ui_SLoadWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = SLoadWindow()
sys.exit(app.exec_())
sload_page.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_SLoadWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1920, 1080)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(0, 0, 1920, 1080))
self.label.setObjectName("label")
self.load1Button = QtWidgets.QPushButton(self.centralwidget)
self.load1Button.setGeometry(QtCore.QRect(880, 520, 161, 71))
self.load1Button.setStyleSheet("QPushButton {\n"
" border: 2px solid #fff;\n"
" color: #fff;\n"
" font-size: 20px;\n"
" border-radius: 5px;\n"
" background: rgba(132, 132, 132, 180)\n"
"}\n"
"\n"
"QPushButton:hover {\n"
" border: 2px solid rgb(182, 182, 182);\n"
" color: rgb(182, 182, 182);\n"
" font-size: 20px;\n"
" border-radius: 5px;\n"
"}")
self.load1Button.setObjectName("load1Button")
self.load2Button = QtWidgets.QPushButton(self.centralwidget)
self.load2Button.setGeometry(QtCore.QRect(880, 610, 161, 71))
self.load2Button.setStyleSheet("QPushButton {\n"
" border: 2px solid #fff;\n"
" color: #fff;\n"
" font-size: 20px;\n"
" border-radius: 5px;\n"
" background: rgba(132, 132, 132, 180)\n"
"}\n"
"\n"
"QPushButton:hover {\n"
" border: 2px solid rgb(182, 182, 182);\n"
" color: rgb(182, 182, 182);\n"
" font-size: 20px;\n"
" border-radius: 5px;\n"
"}")
self.load2Button.setObjectName("load2Button")
self.load3Button = QtWidgets.QPushButton(self.centralwidget)
self.load3Button.setGeometry(QtCore.QRect(880, 700, 161, 71))
self.load3Button.setStyleSheet("QPushButton {\n"
" border: 2px solid #fff;\n"
" color: #fff;\n"
" font-size: 20px;\n"
" border-radius: 5px;\n"
" background: rgba(132, 132, 132, 180)\n"
"}\n"
"\n"
"QPushButton:hover {\n"
" border: 2px solid rgb(182, 182, 182);\n"
" color: rgb(182, 182, 182);\n"
" font-size: 20px;\n"
" border-radius: 5px;\n"
"}")
self.load3Button.setObjectName("load3Button")
self.load4Button = QtWidgets.QPushButton(self.centralwidget)
self.load4Button.setGeometry(QtCore.QRect(880, 790, 161, 71))
self.load4Button.setStyleSheet("QPushButton {\n"
" border: 2px solid #fff;\n"
" color: #fff;\n"
" font-size: 20px;\n"
" border-radius: 5px;\n"
" background: rgba(132, 132, 132, 180)\n"
"}\n"
"\n"
"QPushButton:hover {\n"
" border: 2px solid rgb(182, 182, 182);\n"
" color: rgb(182, 182, 182);\n"
" font-size: 20px;\n"
" border-radius: 5px;\n"
"}")
self.load4Button.setObjectName("load4Button")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "<html><head/><body><p><img src=\":/main_image/main.png\"/></p></body></html>"))
self.load1Button.setText(_translate("MainWindow", "Load 1"))
self.load2Button.setText(_translate("MainWindow", "Load 2"))
self.load3Button.setText(_translate("MainWindow", "Load 3"))
self.load4Button.setText(_translate("MainWindow", "Load 4"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_SLoadWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
I don't know an awful lot about PyQt5 because I am fairly new to it and was sick of tkinter, so if you could tell me anything or suggest an improvement either that would be very helpful and greatly appreciated.
The problem is that you are combining libraries wrongly. Although PyQt5 and PySide2 are bindings of Qt these are different implementations so they are not compatible so the solution:
Or use PyQt5: change to from PyQt5.QtWidgets import *
in main.py
Or use PySide2 but not both: change to from PySide2 import QtCore, QtGui, QtWidgets
in sload_page.py
But don't use both libraries at the same time.