PyQt5 GUI runs with no errors but window doesn't appear - python

The problem is that when I run the PyQt5 GUI after adding resource file and adding PushButtons with border-images on them, mainwindow does not launch and no errors either.
I converted the main window UI to Python with following command:
pyuic5 mainWindow.iu -o mainWindow.py
So this is the mainWindow in python.
from PyQt5 import QtCore, QtGui, QtWidgets
import resources_rc
#import sys
#import random
#import matplotlib
#matplotlib.use("Qt5Agg")
#from PyQt5 import QtCore
#from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QVBoxLayout, QSizePolicy, QMessageBox, QWidget
#from numpy import arange, sin, pi
#from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
#from matplotlib.figure import Figure
#from matplotlib import pyplot as plt
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1108, 672)
MainWindow.setAutoFillBackground(False)
MainWindow.setStyleSheet("background-color: rgb(211, 211, 211);")
MainWindow.setIconSize(QtCore.QSize(40, 40))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalScrollBar = QtWidgets.QScrollBar(self.centralwidget)
self.verticalScrollBar.setGeometry(QtCore.QRect(1050, 0, 21, 611))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.MinimumExpanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.verticalScrollBar.sizePolicy().hasHeightForWidth())
self.verticalScrollBar.setSizePolicy(sizePolicy)
self.verticalScrollBar.setOrientation(QtCore.Qt.Vertical)
self.verticalScrollBar.setObjectName("verticalScrollBar")
self.horizontalScrollBar = QtWidgets.QScrollBar(self.centralwidget)
self.horizontalScrollBar.setGeometry(QtCore.QRect(0, 610, 1051, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.horizontalScrollBar.sizePolicy().hasHeightForWidth())
self.horizontalScrollBar.setSizePolicy(sizePolicy)
self.horizontalScrollBar.setOrientation(QtCore.Qt.Horizontal)
self.horizontalScrollBar.setObjectName("horizontalScrollBar")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(900, -30, 151, 141))
self.label.setStyleSheet("border-image: url(:/img/NM_State_University_logo.png);")
self.label.setText("")
self.label.setObjectName("label")
self.house1 = QtWidgets.QPushButton(self.centralwidget)
self.house1.setGeometry(QtCore.QRect(31, 31, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house1.sizePolicy().hasHeightForWidth())
self.house1.setSizePolicy(sizePolicy)
self.house1.setAutoFillBackground(False)
self.house1.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house1.setText("")
self.house1.setObjectName("house1")
self.house2 = QtWidgets.QPushButton(self.centralwidget)
self.house2.setGeometry(QtCore.QRect(258, 31, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house2.sizePolicy().hasHeightForWidth())
self.house2.setSizePolicy(sizePolicy)
self.house2.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house2.setText("")
self.house2.setObjectName("house2")
self.house3 = QtWidgets.QPushButton(self.centralwidget)
self.house3.setGeometry(QtCore.QRect(484, 31, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house3.sizePolicy().hasHeightForWidth())
self.house3.setSizePolicy(sizePolicy)
self.house3.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house3.setText("")
self.house3.setObjectName("house3")
self.house4 = QtWidgets.QPushButton(self.centralwidget)
self.house4.setGeometry(QtCore.QRect(711, 31, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house4.sizePolicy().hasHeightForWidth())
self.house4.setSizePolicy(sizePolicy)
self.house4.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house4.setText("")
self.house4.setIconSize(QtCore.QSize(40, 40))
self.house4.setObjectName("house4")
self.house6 = QtWidgets.QPushButton(self.centralwidget)
self.house6.setGeometry(QtCore.QRect(258, 200, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house6.sizePolicy().hasHeightForWidth())
self.house6.setSizePolicy(sizePolicy)
self.house6.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house6.setText("")
self.house6.setObjectName("house6")
self.house5 = QtWidgets.QPushButton(self.centralwidget)
self.house5.setGeometry(QtCore.QRect(31, 200, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house5.sizePolicy().hasHeightForWidth())
self.house5.setSizePolicy(sizePolicy)
self.house5.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house5.setText("")
self.house5.setObjectName("house5")
self.house9 = QtWidgets.QPushButton(self.centralwidget)
self.house9.setGeometry(QtCore.QRect(31, 368, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house9.sizePolicy().hasHeightForWidth())
self.house9.setSizePolicy(sizePolicy)
self.house9.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house9.setText("")
self.house9.setObjectName("house9")
self.house7 = QtWidgets.QPushButton(self.centralwidget)
self.house7.setGeometry(QtCore.QRect(484, 200, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house7.sizePolicy().hasHeightForWidth())
self.house7.setSizePolicy(sizePolicy)
self.house7.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house7.setText("")
self.house7.setObjectName("house7")
self.house8 = QtWidgets.QPushButton(self.centralwidget)
self.house8.setGeometry(QtCore.QRect(711, 200, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house8.sizePolicy().hasHeightForWidth())
self.house8.setSizePolicy(sizePolicy)
self.house8.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house8.setText("")
self.house8.setIconSize(QtCore.QSize(70, 20))
self.house8.setAutoDefault(True)
self.house8.setObjectName("house8")
self.house11 = QtWidgets.QPushButton(self.centralwidget)
self.house11.setGeometry(QtCore.QRect(484, 368, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house11.sizePolicy().hasHeightForWidth())
self.house11.setSizePolicy(sizePolicy)
self.house11.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house11.setText("")
self.house11.setObjectName("house11")
self.house10 = QtWidgets.QPushButton(self.centralwidget)
self.house10.setGeometry(QtCore.QRect(258, 368, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house10.sizePolicy().hasHeightForWidth())
self.house10.setSizePolicy(sizePolicy)
self.house10.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house10.setText("")
self.house10.setObjectName("house10")
self.house12 = QtWidgets.QPushButton(self.centralwidget)
self.house12.setGeometry(QtCore.QRect(711, 368, 32, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house12.sizePolicy().hasHeightForWidth())
self.house12.setSizePolicy(sizePolicy)
self.house12.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house12.setText("")
self.house12.setObjectName("house12")
#####################################Power Plot House 1
self.PowPlotHouse1 = QtWidgets.QWidget(self.centralwidget)
self.PowPlotHouse1.setGeometry(QtCore.QRect(70, 30, 171, 121))
self.PowPlotHouse1.setObjectName("PowPlotHouse1")
#####################END of widge
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1108, 21))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
self.menuEdit = QtWidgets.QMenu(self.menubar)
self.menuEdit.setObjectName("menuEdit")
self.menuOptions = QtWidgets.QMenu(self.menubar)
self.menuOptions.setObjectName("menuOptions")
self.menuAdmin = QtWidgets.QMenu(self.menubar)
self.menuAdmin.setObjectName("menuAdmin")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionSave = QtWidgets.QAction(MainWindow)
self.actionSave.setObjectName("actionSave")
self.actionSave_As = QtWidgets.QAction(MainWindow)
self.actionSave_As.setObjectName("actionSave_As")
self.menuFile.addAction(self.actionSave)
self.menuFile.addAction(self.actionSave_As)
self.menubar.addAction(self.menuFile.menuAction())
self.menubar.addAction(self.menuEdit.menuAction())
self.menubar.addAction(self.menuOptions.menuAction())
self.menubar.addAction(self.menuAdmin.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.menuFile.setTitle(_translate("MainWindow", "File"))
self.menuEdit.setTitle(_translate("MainWindow", "Edit"))
self.menuOptions.setTitle(_translate("MainWindow", "Options"))
self.menuAdmin.setTitle(_translate("MainWindow", "Admin"))
self.actionSave.setText(_translate("MainWindow", "Save"))
self.actionSave_As.setText(_translate("MainWindow", "Save As"))
import resources_rcenter
I converted my resources file the following way:
pyrcc5 resources.qrc -o resources_rc.py
And my resources file contents
<RCC>
<qresource prefix="newPrefix">
<file>img/Crystal_Clear_app_kfm_home.png</file>
<file>img/Gohomenew.png</file>
<file>img/NM_State_University_logo.png</file>
<file>img/NMlogo_1colorstate_black.png</file>
<file>img/NMSU.png</file>
<file>img/Search_in_home.png</file>
</qresource>
</RCC>
This is the result when trying to run it.
I think about writing an exception to see if it catches anything.

The problem is that the path you use is incorrect, this is caused by the prefix that you do not add.
For example you must change:
self.label.setStyleSheet("border-image: url(:/img/NM_State_University_logo.png);")
to:
self.label.setStyleSheet("border-image: url(:/newPrefix/img/NM_State_University_logo.png);")
But the above can be tedious, a better way is to change the prefix to "/", in that case it should look like this:
<RCC>
<qresource prefix="/">
<file>img/Crystal_Clear_app_kfm_home.png</file>
<file>img/Gohomenew.png</file>
<file>img/NM_State_University_logo.png</file>
<file>img/NMlogo_1colorstate_black.png</file>
<file>img/NMSU.png</file>
<file>img/Search_in_home.png</file>
</qresource>
</RCC>
And then you recompilas with pyrcc5 resources.qrc -o resources_rc.py.
Another problem is that not for an application to be launched in pyqt you must create the application, for this I recommend adding the following to your file mainWindow.py:
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(w)
w.show()
sys.exit(app.exec_())

Correct the mistype resources_rc and don't forget to create main.py file to call MainWindow.py.
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from MainWindow import *
import sys
class Main(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.show()
def main():
app = QApplication(sys.argv)
instance = Main()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
Then run main.py

Related

Qt5 QComboBox focusOutEvent

I have built a GUI and among other things I am using a QComboBox (drop-down menu) with three entries. I want to enable/disable some other boxes and labels in the GUI, depending on which entry is selected in the QComboBox. I have managed to do that so far.
My problem is that all changes are taken into effect only when I press the "Run" button, which executes the application.
What I want to do is the action of enabling/disabling the relevant boxes will happen once I have selected the entry from the drop-down menu and not waiting until I press the "Run" button.
Is there a way to do something like that? Can I use the focusOutEvent to check when the user has clicked anywhere else than the drop-menu and apply the changes in the other boxes/labels?
I put below the class "controlling" my GUI, but I dont post the actual class generating the GUI because it is too lengthy. If you think it is relevant I can post it. I post instead a picture of the GUI.GUI The boxes and labels in the black circles should be disabled when the "Measuring Mode" drop-box is set to "Cable loss" or "Amplifier". When it is set to "Mixer" they should be enabled. I enable/disable the boxes and labels with an if statement inside the user_input function, in the Window class. The wanted drop-down menu is represeted by the "mode_select" variable.
Edit:
I think my explanation is not very intuitive without the actual gui code so I post it below.
from PyQt5 import QtWidgets, QtCore
from converter import convert_ui
import sys
import os
import time
class Window(QtWidgets.QMainWindow):
def __init__(self):
from transfer_function_gui import Ui_MainWindow
QtWidgets.QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self) # setup GUI
self.ui.run_button_PM_tab.clicked.connect(self.user_input)
def user_input(self):
test_mode = self.ui.mode_select.currentText() # type: str
if test_mode == "Mixer":
self.ui.LO_Power_input.setEnabled(True)
self.ui.LO_Power_lbl.setEnabled(True)
self.ui.LO_freq_input.setEnabled(True)
self.ui.LO_freq_lbl.setEnabled(True)
else:
self.ui.LO_Power_input.setEnabled(False)
self.ui.LO_Power_lbl.setEnabled(False)
self.ui.LO_freq_input.setEnabled(False)
self.ui.LO_freq_lbl.setEnabled(False)
############################### Main ###############################
if __name__=='__main__':
convert_ui('transfer_function_gui.ui')
app = QtWidgets.QApplication(sys.argv)
app.setStyle('Fusion')
window = Window()
window.show()
sys.exit(app.exec_())
GUI generation (from Qt designer)
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(770, 613)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.progressBar = QtWidgets.QProgressBar(self.centralwidget)
self.progressBar.setGeometry(QtCore.QRect(10, 520, 630, 30))
self.progressBar.setProperty("value", 0)
self.progressBar.setObjectName("progressBar")
self.Dev_address_frame = QtWidgets.QGroupBox(self.centralwidget)
self.Dev_address_frame.setGeometry(QtCore.QRect(10, 10, 371, 140))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.Dev_address_frame.sizePolicy().hasHeightForWidth())
self.Dev_address_frame.setSizePolicy(sizePolicy)
self.Dev_address_frame.setMinimumSize(QtCore.QSize(0, 100))
font = QtGui.QFont()
font.setPointSize(8)
self.Dev_address_frame.setFont(font)
self.Dev_address_frame.setFlat(False)
self.Dev_address_frame.setCheckable(False)
self.Dev_address_frame.setObjectName("Dev_address_frame")
self.SigGen_label = QtWidgets.QLabel(self.Dev_address_frame)
self.SigGen_label.setGeometry(QtCore.QRect(20, 30, 100, 20))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.SigGen_label.sizePolicy().hasHeightForWidth())
self.SigGen_label.setSizePolicy(sizePolicy)
self.SigGen_label.setObjectName("SigGen_label")
self.PM_label = QtWidgets.QLabel(self.Dev_address_frame)
self.PM_label.setGeometry(QtCore.QRect(20, 70, 100, 20))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.PM_label.sizePolicy().hasHeightForWidth())
self.PM_label.setSizePolicy(sizePolicy)
self.PM_label.setObjectName("PM_label")
self.SigGen_addr_input = QtWidgets.QLineEdit(self.Dev_address_frame)
self.SigGen_addr_input.setGeometry(QtCore.QRect(120, 30, 180, 20))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.SigGen_addr_input.sizePolicy().hasHeightForWidth())
self.SigGen_addr_input.setSizePolicy(sizePolicy)
self.SigGen_addr_input.setObjectName("SigGen_addr_input")
self.PM_addr_input = QtWidgets.QLineEdit(self.Dev_address_frame)
self.PM_addr_input.setGeometry(QtCore.QRect(120, 70, 180, 20))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.PM_addr_input.sizePolicy().hasHeightForWidth())
self.PM_addr_input.setSizePolicy(sizePolicy)
self.PM_addr_input.setObjectName("PM_addr_input")
self.PM_cnct_checkBox = QtWidgets.QCheckBox(self.Dev_address_frame)
self.PM_cnct_checkBox.setEnabled(False)
self.PM_cnct_checkBox.setGeometry(QtCore.QRect(240, 105, 16, 20))
self.PM_cnct_checkBox.setText("")
self.PM_cnct_checkBox.setObjectName("PM_cnct_checkBox")
self.PM_cnct_lbl = QtWidgets.QLabel(self.Dev_address_frame)
self.PM_cnct_lbl.setEnabled(False)
self.PM_cnct_lbl.setGeometry(QtCore.QRect(20, 105, 210, 20))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.PM_cnct_lbl.sizePolicy().hasHeightForWidth())
self.PM_cnct_lbl.setSizePolicy(sizePolicy)
self.PM_cnct_lbl.setObjectName("PM_cnct_lbl")
self.Freq_setup_frame = QtWidgets.QGroupBox(self.centralwidget)
self.Freq_setup_frame.setGeometry(QtCore.QRect(10, 200, 370, 181))
font = QtGui.QFont()
font.setPointSize(8)
self.Freq_setup_frame.setFont(font)
self.Freq_setup_frame.setFlat(False)
self.Freq_setup_frame.setCheckable(False)
self.Freq_setup_frame.setObjectName("Freq_setup_frame")
self.Start_freq_lbl = QtWidgets.QLabel(self.Freq_setup_frame)
self.Start_freq_lbl.setEnabled(True)
self.Start_freq_lbl.setGeometry(QtCore.QRect(20, 30, 100, 20))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.Start_freq_lbl.sizePolicy().hasHeightForWidth())
self.Start_freq_lbl.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(8)
self.Start_freq_lbl.setFont(font)
self.Start_freq_lbl.setMidLineWidth(0)
self.Start_freq_lbl.setText("Start freq. ")
self.Start_freq_lbl.setObjectName("Start_freq_lbl")
self.Stop_freq_lbl = QtWidgets.QLabel(self.Freq_setup_frame)
self.Stop_freq_lbl.setGeometry(QtCore.QRect(20, 70, 100, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.Stop_freq_lbl.setFont(font)
self.Stop_freq_lbl.setObjectName("Stop_freq_lbl")
self.Step_freq_lbl = QtWidgets.QLabel(self.Freq_setup_frame)
self.Step_freq_lbl.setGeometry(QtCore.QRect(20, 110, 100, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.Step_freq_lbl.setFont(font)
self.Step_freq_lbl.setObjectName("Step_freq_lbl")
self.StopFreq_input = QtWidgets.QLineEdit(self.Freq_setup_frame)
self.StopFreq_input.setGeometry(QtCore.QRect(120, 70, 180, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.StopFreq_input.setFont(font)
self.StopFreq_input.setText("")
self.StopFreq_input.setObjectName("StopFreq_input")
self.Start_freq_input = QtWidgets.QLineEdit(self.Freq_setup_frame)
self.Start_freq_input.setGeometry(QtCore.QRect(120, 30, 180, 20))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.Start_freq_input.sizePolicy().hasHeightForWidth())
self.Start_freq_input.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(8)
self.Start_freq_input.setFont(font)
self.Start_freq_input.setText("")
self.Start_freq_input.setObjectName("Start_freq_input")
self.StepFreq_input = QtWidgets.QLineEdit(self.Freq_setup_frame)
self.StepFreq_input.setGeometry(QtCore.QRect(120, 110, 180, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.StepFreq_input.setFont(font)
self.StepFreq_input.setText("")
self.StepFreq_input.setObjectName("StepFreq_input")
self.freq_units_select = QtWidgets.QComboBox(self.Freq_setup_frame)
self.freq_units_select.setGeometry(QtCore.QRect(310, 29, 51, 141))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.freq_units_select.sizePolicy().hasHeightForWidth())
self.freq_units_select.setSizePolicy(sizePolicy)
self.freq_units_select.setMinimumSize(QtCore.QSize(0, 70))
font = QtGui.QFont()
font.setPointSize(8)
self.freq_units_select.setFont(font)
self.freq_units_select.setInsertPolicy(QtWidgets.QComboBox.InsertAtBottom)
self.freq_units_select.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContentsOnFirstShow)
self.freq_units_select.setFrame(True)
self.freq_units_select.setObjectName("freq_units_select")
self.freq_units_select.addItem("")
self.freq_units_select.addItem("")
self.freq_units_select.addItem("")
self.LO_freq_lbl = QtWidgets.QLabel(self.Freq_setup_frame)
self.LO_freq_lbl.setGeometry(QtCore.QRect(20, 150, 100, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.LO_freq_lbl.setFont(font)
self.LO_freq_lbl.setObjectName("LO_freq_lbl")
self.LO_freq_input = QtWidgets.QLineEdit(self.Freq_setup_frame)
self.LO_freq_input.setGeometry(QtCore.QRect(120, 150, 180, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.LO_freq_input.setFont(font)
self.LO_freq_input.setText("")
self.LO_freq_input.setObjectName("LO_freq_input")
self.Power_setup_frame = QtWidgets.QGroupBox(self.centralwidget)
self.Power_setup_frame.setGeometry(QtCore.QRect(10, 390, 370, 111))
font = QtGui.QFont()
font.setPointSize(8)
self.Power_setup_frame.setFont(font)
self.Power_setup_frame.setFlat(False)
self.Power_setup_frame.setCheckable(False)
self.Power_setup_frame.setObjectName("Power_setup_frame")
self.DUT_input_lbl = QtWidgets.QLabel(self.Power_setup_frame)
self.DUT_input_lbl.setGeometry(QtCore.QRect(20, 30, 100, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.DUT_input_lbl.setFont(font)
self.DUT_input_lbl.setObjectName("DUT_input_lbl")
self.LO_Power_lbl = QtWidgets.QLabel(self.Power_setup_frame)
self.LO_Power_lbl.setGeometry(QtCore.QRect(20, 70, 100, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.LO_Power_lbl.setFont(font)
self.LO_Power_lbl.setObjectName("LO_Power_lbl")
self.DUT_Input_power_input = QtWidgets.QLineEdit(self.Power_setup_frame)
self.DUT_Input_power_input.setGeometry(QtCore.QRect(120, 30, 180, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.DUT_Input_power_input.setFont(font)
self.DUT_Input_power_input.setText("")
self.DUT_Input_power_input.setObjectName("DUT_Input_power_input")
self.LO_Power_input = QtWidgets.QLineEdit(self.Power_setup_frame)
self.LO_Power_input.setGeometry(QtCore.QRect(120, 70, 180, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.LO_Power_input.setFont(font)
self.LO_Power_input.setText("")
self.LO_Power_input.setObjectName("LO_Power_input")
self.LO_dBm = QtWidgets.QLabel(self.Power_setup_frame)
self.LO_dBm.setGeometry(QtCore.QRect(320, 70, 20, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.LO_dBm.setFont(font)
self.LO_dBm.setObjectName("LO_dBm")
self.DUT_dBm = QtWidgets.QLabel(self.Power_setup_frame)
self.DUT_dBm.setGeometry(QtCore.QRect(320, 30, 20, 20))
font = QtGui.QFont()
font.setPointSize(8)
self.DUT_dBm.setFont(font)
self.DUT_dBm.setObjectName("DUT_dBm")
self.mode_label = QtWidgets.QLabel(self.centralwidget)
self.mode_label.setGeometry(QtCore.QRect(30, 165, 100, 20))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.mode_label.sizePolicy().hasHeightForWidth())
self.mode_label.setSizePolicy(sizePolicy)
self.mode_label.setBaseSize(QtCore.QSize(0, 0))
self.mode_label.setObjectName("mode_label")
self.mode_select = QtWidgets.QComboBox(self.centralwidget)
self.mode_select.setGeometry(QtCore.QRect(130, 165, 180, 20))
self.mode_select.setObjectName("mode_select")
self.mode_select.addItem("")
self.mode_select.addItem("")
self.mode_select.addItem("")
self.run_button_PM_tab = QtWidgets.QPushButton(self.centralwidget)
self.run_button_PM_tab.setEnabled(True)
self.run_button_PM_tab.setGeometry(QtCore.QRect(650, 520, 100, 30))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.run_button_PM_tab.sizePolicy().hasHeightForWidth())
self.run_button_PM_tab.setSizePolicy(sizePolicy)
self.run_button_PM_tab.setMinimumSize(QtCore.QSize(0, 0))
self.run_button_PM_tab.setLayoutDirection(QtCore.Qt.LeftToRight)
self.run_button_PM_tab.setObjectName("run_button_PM_tab")
self.S21_table = QtWidgets.QTableWidget(self.centralwidget)
self.S21_table.setGeometry(QtCore.QRect(400, 10, 360, 490))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(33)
sizePolicy.setVerticalStretch(25)
sizePolicy.setHeightForWidth(self.S21_table.sizePolicy().hasHeightForWidth())
self.S21_table.setSizePolicy(sizePolicy)
self.S21_table.setMinimumSize(QtCore.QSize(15, 35))
self.S21_table.setSizeIncrement(QtCore.QSize(0, 0))
self.S21_table.setBaseSize(QtCore.QSize(0, 0))
self.S21_table.setObjectName("S21_table")
self.S21_table.setColumnCount(2)
self.S21_table.setRowCount(1)
item = QtWidgets.QTableWidgetItem()
self.S21_table.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.S21_table.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.S21_table.setHorizontalHeaderItem(1, item)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 770, 21))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
self.menuAbout = QtWidgets.QMenu(self.menubar)
self.menuAbout.setObjectName("menuAbout")
self.menuPreferences = QtWidgets.QMenu(self.menubar)
self.menuPreferences.setObjectName("menuPreferences")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionSave_as = QtWidgets.QAction(MainWindow)
self.actionSave_as.setObjectName("actionSave_as")
self.actionExit = QtWidgets.QAction(MainWindow)
self.actionExit.setObjectName("actionExit")
self.menuFile.addAction(self.actionSave_as)
self.menuFile.addAction(self.actionExit)
self.menubar.addAction(self.menuFile.menuAction())
self.menubar.addAction(self.menuPreferences.menuAction())
self.menubar.addAction(self.menuAbout.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Transfer Function Calculator v0.5"))
self.Dev_address_frame.setTitle(_translate("MainWindow", "Device addresses (GPIB, USB, TCPIP)"))
self.SigGen_label.setText(_translate("MainWindow", "Signal Generator"))
self.PM_label.setText(_translate("MainWindow", "Power Meter"))
self.PM_cnct_lbl.setText(_translate("MainWindow", "If PM is connected to SigGen check the box"))
self.Freq_setup_frame.setTitle(_translate("MainWindow", "Frequency setup"))
self.Stop_freq_lbl.setText(_translate("MainWindow", "Stop freq."))
self.Step_freq_lbl.setText(_translate("MainWindow", "Step freq."))
self.freq_units_select.setCurrentText(_translate("MainWindow", "kHz"))
self.freq_units_select.setItemText(0, _translate("MainWindow", "kHz"))
self.freq_units_select.setItemText(1, _translate("MainWindow", "MHz"))
self.freq_units_select.setItemText(2, _translate("MainWindow", "GHz"))
self.LO_freq_lbl.setText(_translate("MainWindow", "LO freq."))
self.Power_setup_frame.setTitle(_translate("MainWindow", "Power setup"))
self.DUT_input_lbl.setText(_translate("MainWindow", "DUT Input power"))
self.LO_Power_lbl.setText(_translate("MainWindow", "LO Power"))
self.LO_dBm.setText(_translate("MainWindow", "dBm"))
self.DUT_dBm.setText(_translate("MainWindow", "dBm"))
self.mode_label.setText(_translate("MainWindow", "Measuring mode"))
self.mode_select.setItemText(0, _translate("MainWindow", "Cable loss"))
self.mode_select.setItemText(1, _translate("MainWindow", "Amplifier"))
self.mode_select.setItemText(2, _translate("MainWindow", "Mixer"))
self.run_button_PM_tab.setText(_translate("MainWindow", "Run"))
item = self.S21_table.verticalHeaderItem(0)
item.setText(_translate("MainWindow", "New Row"))
item = self.S21_table.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "New Column"))
item = self.S21_table.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "New Column"))
self.menuFile.setTitle(_translate("MainWindow", "File"))
self.menuAbout.setTitle(_translate("MainWindow", "About"))
self.menuPreferences.setTitle(_translate("MainWindow", "Settings..."))
self.actionSave_as.setText(_translate("MainWindow", "Save as..."))
self.actionExit.setText(_translate("MainWindow", "Exit"))
QComboBox uses these signals here which you can connect using signals and slots.
I think the one you would want to use is either currentTextChanged or currentIndexChanged. So you could do something like this in your init:
class Window(QtWidgets.QMainWindow):
def __init__(self):
from transfer_function_gui import Ui_MainWindow
QtWidgets.QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self) # setup GUI
self.ui.run_button_PM_tab.clicked.connect(self.user_input)
self.ui.freq_units_select.currentIndexChanged.connect(self.user_input)
self.ui.mode_select.currentIndexChanged.connect(self.user_input)
This will connect the event of the QComboBox changing it's selected index to a method called self.user_input.

How pass data from second window to main?

I have a python app that change mac address with pyqt5 GUI. I have two python files. The main python file (mainWindow.py) that run main program then I press button to open the second window from second python file secondWindow.py. In second python file opens a window entry then I have to put letters and numbers like then I have to pass data in the first main app label window.
Can anyone help me to solve that?
I tried to reduce code.
mainWindow.py
#!/usr/bin/python3
import os
import sys
import subprocess
from PyQt5 import QtCore, QtGui, QtWidgets
from secondWindow import Ui_macSpecific
import macspoof_bash
import settings
macspoof_bash.write_to_ini()
# Read and write settings in macspoof.ini file
from configparser import ConfigParser
# instantiate
config = ConfigParser()
# parse existing file
config.read('/home/user/.config/macspoof/macspoof.ini')
# read values from a section
wired = config.get('ethernet', 'wired')
wireless = config.get('wifi', 'wireless')
class Ui_MainWindow(object):
def specificWindow(self):
self.window = QtWidgets.QDialog()
self.ui = Ui_macSpecific()
#self.ui.setupUi(self.window)
self.ui.setupUi(self.window, self) # <--- assign MainWindow as parent to second window
self.window.show()
def aboutWindow(self):
self.aboutWindow = QtWidgets.QDialog()
self.ui = Ui_Dialog()
self.ui.setupUi(self.aboutWindow)
self.aboutWindow.show()
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(480, 400)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setStyleSheet("background-color: rgb(36, 31, 49);\n"
"font: 11pt \"DejaVu Sans\";\n"
"color: rgb(246, 245, 244);")
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 1, 0, 1, 1)
self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda: self.specificWindow())
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_6.sizePolicy().hasHeightForWidth())
self.pushButton_6.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(10)
self.pushButton_6.setFont(font)
self.pushButton_6.setObjectName("pushButton_6")
self.gridLayout.addWidget(self.pushButton_6, 4, 1, 1, 1)
self.pushButton = QtWidgets.QPushButton(self.centralwidget, clicked = lambda: self.button_vendor_wired())
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
self.pushButton.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(10)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.gridLayout.addWidget(self.pushButton, 2, 0, 1, 1)
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda: self.button_fully_wired())
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_3.sizePolicy().hasHeightForWidth())
self.pushButton_3.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(10)
self.pushButton_3.setFont(font)
self.pushButton_3.setObjectName("pushButton_3")
self.gridLayout.addWidget(self.pushButton_3, 3, 0, 1, 1)
self.pushButton_8 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda: self.button_original_wireless())
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_8.sizePolicy().hasHeightForWidth())
self.pushButton_8.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(10)
self.pushButton_8.setFont(font)
self.pushButton_8.setLayoutDirection(QtCore.Qt.LeftToRight)
self.pushButton_8.setAutoFillBackground(False)
self.pushButton_8.setObjectName("pushButton_8")
self.gridLayout.addWidget(self.pushButton_8, 5, 1, 1, 1)
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda: self.button_vendor_wireless())
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_2.sizePolicy().hasHeightForWidth())
self.pushButton_2.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(10)
self.pushButton_2.setFont(font)
self.pushButton_2.setObjectName("pushButton_2")
self.gridLayout.addWidget(self.pushButton_2, 2, 1, 1, 1)
self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda: self.button_original_wired())
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_7.sizePolicy().hasHeightForWidth())
self.pushButton_7.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(10)
self.pushButton_7.setFont(font)
self.pushButton_7.setObjectName("pushButton_7")
self.gridLayout.addWidget(self.pushButton_7, 5, 0, 1, 1)
self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda: self.specificWindow())
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_5.sizePolicy().hasHeightForWidth())
self.pushButton_5.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(10)
self.pushButton_5.setFont(font)
self.pushButton_5.setObjectName("pushButton_5")
self.gridLayout.addWidget(self.pushButton_5, 4, 0, 1, 1)
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setStyleSheet("background-color: rgb(36, 31, 49);\n"
"font: 11pt \"DejaVu Sans\";\n"
"color: rgb(246, 245, 244);")
self.label_4.setObjectName("label_4")
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
self.gridLayout.addWidget(self.label_4, 1, 1, 1, 1)
self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget, clicked = lambda: self.button_fully_wireless())
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_4.sizePolicy().hasHeightForWidth())
self.pushButton_4.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(10)
self.pushButton_4.setFont(font)
self.pushButton_4.setObjectName("pushButton_4")
self.gridLayout.addWidget(self.pushButton_4, 3, 1, 1, 1)
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setMinimumSize(QtCore.QSize(0, 0))
self.label.setSizeIncrement(QtCore.QSize(0, 0))
self.label.setStyleSheet("background-color: rgb(36, 31, 49);\n"
"font: 11pt \"DejaVu Sans\";\n"
"color: rgb(246, 245, 244);")
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setStyleSheet("background-color: rgb(36, 31, 49);\n"
"font: 11pt \"DejaVu Sans\";\n"
"color: rgb(246, 245, 244);")
self.label_2.setObjectName("label_2")
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.gridLayout.addWidget(self.label_2, 0, 1, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 480, 20))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
self.menuEdit = QtWidgets.QMenu(self.menubar)
self.menuEdit.setObjectName("menuEdit")
self.menuHelp = QtWidgets.QMenu(self.menubar)
self.menuHelp.setObjectName("menuHelp")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionExit = QtWidgets.QAction(MainWindow)
self.actionExit.triggered.connect(lambda: self.close_window())
self.actionExit.setObjectName("actionExit")
self.actionPreferences = QtWidgets.QAction(MainWindow)
self.actionPreferences.setObjectName("actionPreferences")
self.actionAbout = QtWidgets.QAction(MainWindow)
self.actionAbout.triggered.connect(lambda: self.aboutWindow())
self.actionAbout.setObjectName("actionAbout")
self.menuFile.addAction(self.actionExit)
self.menuEdit.addAction(self.actionPreferences)
self.menuHelp.addAction(self.actionAbout)
self.menubar.addAction(self.menuFile.menuAction())
self.menubar.addAction(self.menuEdit.menuAction())
self.menubar.addAction(self.menuHelp.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.update_wired_label(MainWindow)
self.update_wired_mac_address_label(MainWindow)
self.update_wireless_label(MainWindow)
self.update_wireless_mac_address_label(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MAC address spoofing"))
self.label_3.setText(_translate("MainWindow", "TextLabel"))
self.pushButton_6.setText(_translate("MainWindow", "Set the MAC"))
self.pushButton.setText(_translate("MainWindow", "Don\'t change vendor bytes"))
self.pushButton_3.setText(_translate("MainWindow", "Set fully random MAC"))
self.pushButton_8.setText(_translate("MainWindow", "Reset MAC address to its original"))
self.pushButton_2.setText(_translate("MainWindow", "Don\'t change vendor bytes"))
self.pushButton_7.setText(_translate("MainWindow", "Reset MAC address to its original"))
self.pushButton_5.setText(_translate("MainWindow", "Set the MAC"))
self.label_4.setText(_translate("MainWindow", "TextLabel"))
self.pushButton_4.setText(_translate("MainWindow", "Set fully random MAC"))
self.label.setText(_translate("MainWindow", "TextLabel"))
self.label_2.setText(_translate("MainWindow", "TextLabel"))
self.menuFile.setTitle(_translate("MainWindow", "File"))
self.menuEdit.setTitle(_translate("MainWindow", "Settings"))
self.menuHelp.setTitle(_translate("MainWindow", "Help"))
self.actionExit.setText(_translate("MainWindow", "Exit"))
self.actionPreferences.setText(_translate("MainWindow", "Preferences"))
self.actionAbout.setText(_translate("MainWindow", "About"))
def update_wired_label(self, MainWindow):
print('update_wired_label')
self.wired = config.get('ethernet', 'wired')
self.label.setText(str(self.wired))
def update_wired_mac_address_label(self, MainWindow):
print('update_wired_mac_address_label')
config.read('/home/user/.config/macspoof/macspoof.ini')
self.wired_mac_address = config.get('ethernet', 'wired_mac_address')
self.label_3.setText(str(self.wired_mac_address))
def update_wireless_label(self, MainWindow):
print('update_wireless_label')
self.wireless = config.get('wifi', 'wireless')
self.label_2.setText(str(self.wireless))
def update_wireless_mac_address_label(self, MainWindow):
print('update_wireless_mac_address_label')
config.read('/home/user/.config/macspoof/macspoof.ini')
self.wireless_mac_address = config.get('wifi', 'wireless_mac_address')
self.label_4.setText(str(self.wireless_mac_address))
def button_vendor_wired(self):
print('vendor_wired')
subprocess.run(['macchanger', '-e', wired])
macspoof_bash.vendor_wired()
self.update_wired_mac_address_label(MainWindow)
def button_fully_wired(self):
print('fully wired')
subprocess.run(['macchanger', '-r', wired])
macspoof_bash.write_to_ini()
self.update_wired_mac_address_label(MainWindow)
#def button_specific_wired(self):
# print('specific wired')
# subprocess.run(["macchanger", "-m", wired])
def button_original_wired(self):
print('original wired')
subprocess.run(['macchanger', '-p', wired])
macspoof_bash.write_to_ini()
self.update_wired_mac_address_label(MainWindow)
def button_vendor_wireless(self):
print('vendor_wireless')
subprocess.run(['macchanger', '-e', wireless])
macspoof_bash.vendor_wireless()
self.update_wireless_mac_address_label(MainWindow)
def button_fully_wireless(self):
print('fully wireless')
#wireless = config.get("wifi", "wireless")
#subprocess.run(['macchanger', '-r', wired])
macspoof_bash.fully_wireless()
self.update_wireless_mac_address_label(MainWindow)
def button_specific_wireless(self):
print('specific wired')
subprocess.run(["macchanger", "-m", wireless])
def button_original_wireless(self):
print('original wireless')
subprocess.run(['macchanger', '-p', wireless])
macspoof_bash.write_to_ini()
self.update_wireless_mac_address_label(MainWindow)
def close_window(self):
print("Quit")
sys.exit()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
secondWindow.py
from PyQt5 import QtCore, QtGui, QtWidgets
# Read and write settings in macspoof.ini file
from configparser import ConfigParser
# instantiate
config = ConfigParser()
# parse existing file
config.read('macspoof.ini')
# read values from a section
wired = config.get('ethernet', 'wired')
wired_mac_address = config.get('ethernet', 'wired_mac_address')
class Ui_macSpecific(object):
def setupUi(self, macSpecific, parent): # <--- add extra parameter parent
self.parent = parent # < --- create new attribute parent
#def setupUi(self, macSpecific):
macSpecific.setObjectName("macSpecific")
macSpecific.resize(301, 140)
self.gridLayout = QtWidgets.QGridLayout(macSpecific)
self.gridLayout.setObjectName("gridLayout")
self.label = QtWidgets.QLabel(macSpecific)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(10)
self.label.setFont(font)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.lineEdit = QtWidgets.QLineEdit(macSpecific)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lineEdit.sizePolicy().hasHeightForWidth())
self.lineEdit.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("DejaVu Sans")
font.setPointSize(14)
self.lineEdit.setFont(font)
self.lineEdit.setLayoutDirection(QtCore.Qt.LeftToRight)
self.lineEdit.setAutoFillBackground(False)
self.lineEdit.setAlignment(QtCore.Qt.AlignCenter)
self.lineEdit.setObjectName("lineEdit")
self.gridLayout.addWidget(self.lineEdit, 1, 0, 1, 1)
self.pushButton = QtWidgets.QPushButton(macSpecific, clicked = lambda: self.submit())
self.pushButton.setObjectName("pushButton")
self.gridLayout.addWidget(self.pushButton, 2, 0, 1, 1)
self.retranslateUi(macSpecific)
QtCore.QMetaObject.connectSlotsByName(macSpecific)
def retranslateUi(self, macSpecific):
_translate = QtCore.QCoreApplication.translate
macSpecific.setWindowTitle(_translate("macSpecific", "MAC address spoofing"))
self.label.setText(_translate("macSpecific", "Enter A MAC address"))
self.lineEdit.setText(_translate("macSpecific", "11:22:33:44:55:66"))
self.pushButton.setText(_translate("macSpecific", "Submit"))
def submit(self):
print("submit")
#self.parent.label_3.setText(str(self.wired_mac_address)) # use parent to set label text
self.parent.label_3.setText(str(self.parent.wired_mac_address)) # <-----Try this then.
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
macSpecific = QtWidgets.QDialog()
ui = Ui_macSpecific()
ui.setupUi(macSpecific)
macSpecific.show()
sys.exit(app.exec_())
One solution would be to assign the MainWindow as the parent of the SecondWindow. Then to get the label text all the SecondWindow has to do is self.parent.label.setText('something'). See the minor adjustments I made below.
mainWindow.py
class Ui_MainWindow(object):
def specificWindow(self):
self.window = QtWidgets.QDialog()
self.ui = Ui_macSpecific()
self.ui.setupUi(self.window, self) # <--- assign MainWindow as parent to second window
self.window.show()
secondWindow.py
import macspoof_bash
class Ui_macSpecific(object):
def setupUi(self, macSpecific, master):
self.master = master
self.window = macSpecific
macSpecific.setObjectName("macSpecific")
macSpecific.resize(301, 140)
...
...
self.pushButton = QtWidgets.QPushButton(macSpecific, clicked = lambda: self.submit())
def submit(self):
print("submit")
text = self.lineEdit.text()
self.master.label_3.setText(text)
self.window.close()
config['ethernet']['wired_mac_address'] = text
with open("macspoof.ini", "w") as inifile:
config.write(inifile)

PyQt5. Converted .ui file into py, but in the editor there are a lot of errors [duplicate]

I made a simple program with PyQt GUI, and compiled '.ui' file.
# Form implementation generated from reading ui file 'main.ui'
#
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(441, 255)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setAutoFillBackground(False)
MainWindow.setTabShape(QtWidgets.QTabWidget.Rounded)
self.frame = QtWidgets.QWidget(MainWindow)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
self.frame.setSizePolicy(sizePolicy)
self.frame.setObjectName("frame")
self.tab = QtWidgets.QTabWidget(self.frame)
self.tab.setGeometry(QtCore.QRect(10, 10, 421, 201))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
self.tab.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("UltraLight")
font.setPointSize(10)
self.tab.setFont(font)
self.tab.setTabShape(QtWidgets.QTabWidget.Triangular)
self.tab.setMovable(False)
self.tab.setTabBarAutoHide(False)
self.tab.setObjectName("tab")
self.tabOption = QtWidgets.QWidget()
self.tabOption.setObjectName("tabOption")
self.profileList = QtWidgets.QComboBox(self.tabOption)
self.profileList.setGeometry(QtCore.QRect(60, 10, 121, 20))
font = QtGui.QFont()
font.setFamily("UltraLight")
font.setPointSize(10)
self.profileList.setFont(font)
self.profileList.setObjectName("profileList")
self.ramInput = QtWidgets.QLineEdit(self.tabOption)
self.ramInput.setGeometry(QtCore.QRect(50, 40, 81, 20))
self.ramInput.setObjectName("ramInput")
self.ramLabel = QtWidgets.QLabel(self.tabOption)
self.ramLabel.setGeometry(QtCore.QRect(10, 40, 31, 21))
font = QtGui.QFont()
font.setFamily("나눔바른고딕 UltraLight")
font.setPointSize(10)
self.ramLabel.setFont(font)
self.ramLabel.setObjectName("ramLabel")
self.ramUnit = QtWidgets.QComboBox(self.tabOption)
self.ramUnit.setGeometry(QtCore.QRect(140, 40, 41, 22))
self.ramUnit.setObjectName("ramUnit")
self.ramUnit.addItem("")
self.ramUnit.addItem("")
self.ramUnit.addItem("")
self.profileLabel = QtWidgets.QLabel(self.tabOption)
self.profileLabel.setGeometry(QtCore.QRect(10, 10, 41, 21))
font = QtGui.QFont()
font.setFamily("UltraLight")
font.setPointSize(10)
self.profileLabel.setFont(font)
self.profileLabel.setObjectName("profileLabel")
self.logo = QtWidgets.QLabel(self.tabOption)
self.logo.setGeometry(QtCore.QRect(180, 10, 231, 151))
self.logo.setStyleSheet("image: url(:/logo/logo.png);")
self.logo.setText("")
self.logo.setObjectName("logo")
self.javaLabel = QtWidgets.QLabel(self.tabOption)
self.javaLabel.setGeometry(QtCore.QRect(10, 70, 61, 21))
font = QtGui.QFont()
font.setFamily("UltraLight")
font.setPointSize(10)
self.javaLabel.setFont(font)
self.javaLabel.setObjectName("javaLabel")
self.javaInput = QtWidgets.QLineEdit(self.tabOption)
self.javaInput.setGeometry(QtCore.QRect(80, 70, 101, 20))
self.javaInput.setObjectName("javaInput")
self.javaLabelOptinal = QtWidgets.QLabel(self.tabOption)
self.javaLabelOptinal.setGeometry(QtCore.QRect(10, 80, 61, 21))
font = QtGui.QFont()
font.setFamily("나눔바른고딕 UltraLight")
font.setPointSize(6)
self.javaLabelOptinal.setFont(font)
self.javaLabelOptinal.setObjectName("javaLabelOptinal")
self.launch = QtWidgets.QCommandLinkButton(self.tabOption)
self.launch.setGeometry(QtCore.QRect(10, 110, 171, 41))
self.launch.setObjectName("launch")
self.tab.addTab(self.tabOption, "")
self.tabConsole = QtWidgets.QWidget()
self.tabConsole.setObjectName("tabConsole")
self.console = QtWidgets.QTextBrowser(self.tabConsole)
self.console.setGeometry(QtCore.QRect(10, 10, 391, 131))
self.console.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.console.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
self.console.setPlaceholderText("")
self.console.setObjectName("console")
self.commandInput = QtWidgets.QLineEdit(self.tabConsole)
self.commandInput.setGeometry(QtCore.QRect(10, 150, 391, 20))
self.commandInput.setText("")
self.commandInput.setObjectName("commandInput")
self.tab.addTab(self.tabConsole, "")
MainWindow.setCentralWidget(self.frame)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setEnabled(True)
self.menubar.setGeometry(QtCore.QRect(0, 0, 441, 21))
font = QtGui.QFont()
font.setFamily("나눔바른고딕 UltraLight")
font.setPointSize(10)
self.menubar.setFont(font)
self.menubar.setToolTip("Settings about profiles")
self.menubar.setObjectName("menubar")
self.menuProfiles = QtWidgets.QMenu(self.menubar)
self.menuProfiles.setObjectName("menuProfiles")
self.menuSettings = QtWidgets.QMenu(self.menubar)
self.menuSettings.setObjectName("menuSettings")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
font = QtGui.QFont()
font.setFamily("")
font.setPointSize(10)
self.statusbar.setFont(font)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionCreate_new_profile = QtWidgets.QAction(MainWindow)
font = QtGui.QFont()
font.setFamily("나눔바른고딕 UltraLight")
font.setPointSize(10)
self.actionCreate_new_profile.setFont(font)
self.actionCreate_new_profile.setObjectName("actionCreate_new_profile")
self.actionDelete_a_profile = QtWidgets.QAction(MainWindow)
font = QtGui.QFont()
font.setFamily("나눔바른고딕 UltraLight")
font.setPointSize(10)
self.actionDelete_a_profile.setFont(font)
self.actionDelete_a_profile.setObjectName("actionDelete_a_profile")
self.actionProfile_Settings = QtWidgets.QAction(MainWindow)
font = QtGui.QFont()
font.setFamily("UltraLight")
font.setPointSize(10)
self.actionProfile_Settings.setFont(font)
self.actionProfile_Settings.setObjectName("actionProfile_Settings")
self.actionGlobal_settings = QtWidgets.QAction(MainWindow)
font = QtGui.QFont()
font.setFamily("UltraLight")
font.setPointSize(10)
self.actionGlobal_settings.setFont(font)
self.actionGlobal_settings.setObjectName("actionGlobal_settings")
self.actionAuto_completes = QtWidgets.QAction(MainWindow)
font = QtGui.QFont()
font.setFamily("UltraLight")
font.setPointSize(10)
self.actionAuto_completes.setFont(font)
self.actionAuto_completes.setObjectName("actionAuto_completes")
self.menuProfiles.addAction(self.actionCreate_new_profile)
self.menuProfiles.addAction(self.actionDelete_a_profile)
self.menuSettings.addAction(self.actionProfile_Settings)
self.menuSettings.addAction(self.actionGlobal_settings)
self.menuSettings.addSeparator()
self.menuSettings.addAction(self.actionAuto_completes)
self.menubar.addAction(self.menuProfiles.menuAction())
self.menubar.addAction(self.menuSettings.menuAction())
self.retranslateUi(MainWindow)
self.tab.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.ramLabel.setText(_translate("MainWindow", "RAM:"))
self.ramUnit.setItemText(0, _translate("MainWindow", "GB"))
self.ramUnit.setItemText(1, _translate("MainWindow", "MB"))
self.ramUnit.setItemText(2, _translate("MainWindow", "KB"))
self.profileLabel.setText(_translate("MainWindow", "Profile:"))
self.javaLabel.setText(_translate("MainWindow", "Java Path:"))
self.javaLabelOptinal.setText(_translate("MainWindow", "(Optinal)"))
self.launch.setText(_translate("MainWindow", "Launch Bukkit!"))
self.tab.setTabText(self.tab.indexOf(self.tabOption), _translate("MainWindow", "Launch Options"))
self.tab.setTabText(self.tab.indexOf(self.tabConsole), _translate("MainWindow", "Console"))
self.menuProfiles.setTitle(_translate("MainWindow", "Profiles"))
self.menuSettings.setTitle(_translate("MainWindow", "Settings"))
self.actionCreate_new_profile.setText(_translate("MainWindow", "Create a new profile.."))
self.actionCreate_new_profile.setShortcut(_translate("MainWindow", "Alt+C"))
self.actionDelete_a_profile.setText(_translate("MainWindow", "Delete a profile.."))
self.actionDelete_a_profile.setShortcut(_translate("MainWindow", "Alt+D"))
self.actionProfile_Settings.setText(_translate("MainWindow", "Profile settings.."))
self.actionProfile_Settings.setShortcut(_translate("MainWindow", "Alt+S"))
self.actionGlobal_settings.setText(_translate("MainWindow", "Global settings.."))
self.actionGlobal_settings.setShortcut(_translate("MainWindow", "Alt+Shift+S"))
self.actionAuto_completes.setText(_translate("MainWindow", "Auto completes.."))
self.actionAuto_completes.setShortcut(_translate("MainWindow", "Alt+A"))
import resource_rc
but it is causing error like below.
ImportError: No module named 'resource_rc'
I tried to find this error in StackOverflow already, but anyone didn't get this error.
I'm using Python 3.5, and PyQt 5.6.
(I know PyQt is incompatible with Python 3.5, but I don't have any error except this)
Now, code is working without any problem after I removed last line of codes: 'import resource_rc'
but exactly what is this line doing?
You should have a file called resource.qrc, this must be converted to .py, this or you can do it by executing:
pyrcc5 resource.qrc -o resource_rc.py
When you compile a .ui file, it uses the resources_rc.py (which must be compiled as well) to store its resources. For example, if you open the qrc file, you will see the items it has stored. If your ui uses anything from the resources_rc.py, file you will get the error you saw.
import resource_rc
you may fix this with --from-imports option .
pyuic4 -h
--from-imports generate imports relative to '.'
Example:
pyuic4 --from-imports -w -o aboutBA.py aboutBA.ui
with python3, i use this:
pyrcc5 file.qrc -o file.py
https://i.stack.imgur.com/UhvOS.png
make sure you select your environment with PyQT5!
conda activate your_env_name
try the above command. Make sure that you have installed Anaconda.
If you are not installed Pyqt5 use the below commands to install.
conda install -c anaconda pyqt
pip install PyQt5

How to close a window in Pyqt5 [duplicate]

This question already has answers here:
QtDesigner changes will be lost after redesign User Interface
(2 answers)
How to close a QDialog
(4 answers)
Closed 1 year ago.
I've created a program that allows you to login and sign up. When you have the right credentials it opens a window but it doesn't close. The same thing happens when you press the button to sign up. I've tried to use the close method but it doesn't work i always get:
AttributeError: type object 'Ui_Dialog' has no attribute 'close'
here is the full code of all the windows:
Login Page
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5 import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QMessageBox
import sqlite3
from welcome import Ui_MainWindow
from signup_page import Ui_Dialog2
import sys
#widget.setCurrentIndex(widget.currentIndex)
class Ui_Dialog(object):
def showMessageBox(self):
font = QtGui.QFont()
font.setPointSize(20)
self.label.setFont(font)
self.label.setStyleSheet("color: rgb(0, 0, 0);\n"
"background-color: rgb(255, 0, 0);")
self.label.setObjectName("label")
self.label.setText("WRONG USERNAME/PASSWORD")
def loginCheck(self):
username = self.username_input.text()
password = self.password_input.text()
connection = sqlite3.connect("login.db")
result = connection.execute("SELECT * FROM USERS WHERE USERNAME = ? AND PASSWORD = ?", (username, password))
if (len(result.fetchall())) > 0:
self.welcomewindow = QtWidgets.QMainWindow()
self.ui = Ui_MainWindow()
self.ui.setupUi(self.welcomewindow)
self.welcomewindow.show()
else:
self.showMessageBox()
def singup(self):
self.signup_page = QtWidgets.QDialog()
self.ui = Ui_Dialog2()
self.ui.setupUi(self.signup_page)
self.signup_page.show()
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(591, 457)
self.user_name_label = QtWidgets.QLabel(Dialog)
self.user_name_label.setGeometry(QtCore.QRect(190, 150, 81, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.user_name_label.sizePolicy().hasHeightForWidth())
self.user_name_label.setSizePolicy(sizePolicy)
self.user_name_label.setSizeIncrement(QtCore.QSize(0, 0))
self.user_name_label.setBaseSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(13)
self.user_name_label.setFont(font)
self.user_name_label.setObjectName("user_name_label")
self.password_label = QtWidgets.QLabel(Dialog)
self.password_label.setGeometry(QtCore.QRect(190, 210, 81, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.password_label.sizePolicy().hasHeightForWidth())
self.password_label.setSizePolicy(sizePolicy)
self.password_label.setSizeIncrement(QtCore.QSize(0, 0))
self.password_label.setBaseSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(13)
self.password_label.setFont(font)
self.password_label.setObjectName("password_label")
self.username_input = QtWidgets.QLineEdit(Dialog)
self.username_input.setGeometry(QtCore.QRect(280, 150, 141, 20))
self.username_input.setObjectName("username_input")
self.password_input = QtWidgets.QLineEdit(Dialog)
self.password_input.setGeometry(QtCore.QRect(280, 210, 141, 20))
self.password_input.setObjectName("password_input")
self.password_input.setEchoMode(self.password_input.Password)
self.login_btn = QtWidgets.QPushButton(Dialog)
self.login_btn.setGeometry(QtCore.QRect(200, 260, 81, 31))
font = QtGui.QFont()
font.setPointSize(13)
self.login_btn.setFont(font)
self.login_btn.setObjectName("login_btn")
#########Button Event##########
self.login_btn.clicked.connect(self.loginCheck)
###############################
self.signup_btn = QtWidgets.QPushButton(Dialog)
self.signup_btn.setGeometry(QtCore.QRect(300, 260, 81, 31))
########Button Event##########
self.signup_btn.clicked.connect(self.singup)
##############################
font = QtGui.QFont()
font.setPointSize(13)
self.signup_btn.setFont(font)
self.signup_btn.setObjectName("signup_btn")
self.login_title = QtWidgets.QLabel(Dialog)
self.login_title.setGeometry(QtCore.QRect(240, 40, 91, 71))
font = QtGui.QFont()
font.setPointSize(20)
self.login_title.setFont(font)
self.login_title.setObjectName("login_title")
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(130, 370, 391, 31))
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Login Page"))
self.user_name_label.setText(_translate("Dialog", "Username"))
self.password_label.setText(_translate("Dialog", "Password"))
self.login_btn.setText(_translate("Dialog", "Login"))
self.signup_btn.setText(_translate("Dialog", "Sign Up"))
self.login_title.setText(_translate("Dialog", " Login"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QStackedWidget()
MainWindow = QtWidgets.QMainWindow()
ui = Ui_Dialog()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
The main window:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(593, 458)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(200, 180, 221, 71))
font = QtGui.QFont()
font.setPointSize(40)
self.label.setFont(font)
self.label.setObjectName("label")
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", "Welcome"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
and the signup page:
from PyQt5 import QtCore, QtGui, QtWidgets
import sqlite3
from welcome import Ui_MainWindow
import re
from PyQt5.QtWidgets import QMessageBox
class Ui_Dialog2(object):
def showMessageBox_password(self):
font = QtGui.QFont()
font.setPointSize(20)
self.label.setFont(font)
self.label.setStyleSheet("color: rgb(0, 0, 0);\n"
"background-color: rgb(255, 0, 0);")
self.label.setObjectName("label")
self.label.setText("INVALID PASSWORD")
def showMessageBox_email(self):
font = QtGui.QFont()
font.setPointSize(20)
self.label.setFont(font)
self.label.setStyleSheet("color: rgb(0, 0, 0);\n"
"background-color: rgb(255, 0, 0);")
self.label.setObjectName("label")
self.label.setText(" INVALID EMAIL")
def insertData(self):
username = self.username_entry.text()
password = self.password_entry.text()
email = self.email_entry.text()
connection = sqlite3.connect("login.db")
regex = '^(\w|\.|\_|\-)+[#](\w|\_|\-|\.)+[.]\w{2,3}$'
valid_email = True
valid_password = True
if(re.search(regex, email)):
valid_email = True
else:
valid_email = False
if len(password) > 7:
valid_password = True
else:
valid_password = False
if valid_email == True and valid_password == True:
connection.execute("INSERT INTO USERS VALUES(?,?,?)", (username, email, password))
connection.commit()
self.welcomewindow = QtWidgets.QMainWindow()
self.ui = Ui_MainWindow()
self.ui.setupUi(self.welcomewindow)
self.welcomewindow.show()
if valid_email == False:
self.showMessageBox_email()
elif valid_password == False:
self.showMessageBox_password()
connection.close()
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(593, 458)
self.user_name_label = QtWidgets.QLabel(Dialog)
self.user_name_label.setGeometry(QtCore.QRect(190, 200, 81, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.user_name_label.sizePolicy().hasHeightForWidth())
self.user_name_label.setSizePolicy(sizePolicy)
self.user_name_label.setSizeIncrement(QtCore.QSize(0, 0))
self.user_name_label.setBaseSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(13)
self.user_name_label.setFont(font)
self.user_name_label.setObjectName("user_name_label")
self.password_label = QtWidgets.QLabel(Dialog)
self.password_label.setGeometry(QtCore.QRect(190, 240, 81, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.password_label.sizePolicy().hasHeightForWidth())
self.password_label.setSizePolicy(sizePolicy)
self.password_label.setSizeIncrement(QtCore.QSize(0, 0))
self.password_label.setBaseSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(13)
self.password_label.setFont(font)
self.password_label.setObjectName("password_label")
self.email_label = QtWidgets.QLabel(Dialog)
self.email_label.setGeometry(QtCore.QRect(190, 160, 81, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.email_label.sizePolicy().hasHeightForWidth())
self.email_label.setSizePolicy(sizePolicy)
self.email_label.setSizeIncrement(QtCore.QSize(0, 0))
self.email_label.setBaseSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(13)
self.email_label.setFont(font)
self.email_label.setObjectName("email_label")
self.email_entry = QtWidgets.QLineEdit(Dialog)
self.email_entry.setGeometry(QtCore.QRect(270, 160, 200, 20))
self.email_entry.setObjectName("email_entry")
self.username_entry = QtWidgets.QLineEdit(Dialog)
self.username_entry.setGeometry(QtCore.QRect(270, 200, 200, 20))
self.username_entry.setObjectName("username_entry")
self.password_entry = QtWidgets.QLineEdit(Dialog)
self.password_entry.setGeometry(QtCore.QRect(270, 240, 200, 20))
self.password_entry.setObjectName("password_entry")
self.password_entry.setEchoMode(self.password_entry.Password)
self.sign_up_button = QtWidgets.QPushButton(Dialog)
self.sign_up_button.setGeometry(QtCore.QRect(270, 280, 81, 31))
font = QtGui.QFont()
font.setPointSize(13)
self.sign_up_button.setFont(font)
self.sign_up_button.setObjectName("sign_up_button")
self.sign_up_button.clicked.connect(self.insertData)
self.login_title = QtWidgets.QLabel(Dialog)
self.login_title.setGeometry(QtCore.QRect(220, 50, 191, 71))
font = QtGui.QFont()
font.setPointSize(20)
self.login_title.setFont(font)
self.login_title.setObjectName("login_title")
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(170, 360, 251, 31))
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Sign Up Page"))
self.user_name_label.setText(_translate("Dialog", "Username"))
self.password_label.setText(_translate("Dialog", "Password"))
self.email_label.setText(_translate("Dialog", "Email"))
self.sign_up_button.setText(_translate("Dialog", "Sign Up"))
self.login_title.setText(_translate("Dialog", "Create Account"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_Dialog2()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

Style-sheets in PyQt5 bakground-image pushbutton turns it into a no-image pushbutton

I use Qt-Designer to create a mainwindow and used stylesheets to make a button changeimage when pressed. however after running it the background-image and the pressed image does not work.
This is the stylesheet input from Qt-Designer:
QPushButton#House1 {
border-image: url(:/img/Crystal_Clear_app_kfm_home.png);
}
QPushButton#House:pressed {
border-image: url(:/img/Search_in_home.png);
}
This is my mainWindow.py :
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import resources_rc
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(811, 600)
MainWindow.setStyleSheet("background-color: rgb(211, 211, 211);")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
###################house 1#######
self.house2 = QtWidgets.QPushButton(self.centralwidget)
self.house1.setGeometry(QtCore.QRect(61, 21, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house1.sizePolicy().hasHeightForWidth())
self.house1.setSizePolicy(sizePolicy)
self.house1.setStyleSheet("#House1 {\n"
"border-image: url(:/img/Crystal_Clear_app_kfm_home.png);\n"
"}\n"
"#House:Pressed {\n"
" border-image: url(:/img/Search_in_home.png);\n"
"}")
self.house1.setText("")
self.house1.setObjectName("house1")
####################end #############
self.house4 = QtWidgets.QPushButton(self.centralwidget)
self.house4.setGeometry(QtCore.QRect(61, 203, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house4.sizePolicy().hasHeightForWidth())
self.house4.setSizePolicy(sizePolicy)
self.house4.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house4.setText("")
self.house4.setObjectName("house4")
self.house2 = QtWidgets.QPushButton(self.centralwidget)
self.house2.setGeometry(QtCore.QRect(293, 21, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house2.sizePolicy().hasHeightForWidth())
self.house2.setSizePolicy(sizePolicy)
self.house2.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house2.setText("")
self.house2.setObjectName("house2")
self.house3 = QtWidgets.QPushButton(self.centralwidget)
self.house3.setGeometry(QtCore.QRect(524, 21, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house3.sizePolicy().hasHeightForWidth())
self.house3.setSizePolicy(sizePolicy)
self.house3.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house3.setText("")
self.house3.setObjectName("house3")
self.pushButton_8 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_8.setGeometry(QtCore.QRect(293, 384, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_8.sizePolicy().hasHeightForWidth())
self.pushButton_8.setSizePolicy(sizePolicy)
self.pushButton_8.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.pushButton_8.setText("")
self.pushButton_8.setObjectName("pushButton_8")
self.house5 = QtWidgets.QPushButton(self.centralwidget)
self.house5.setGeometry(QtCore.QRect(293, 203, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house5.sizePolicy().hasHeightForWidth())
self.house5.setSizePolicy(sizePolicy)
self.house5.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house5.setText("")
self.house5.setObjectName("house5")
self.house6 = QtWidgets.QPushButton(self.centralwidget)
self.house6.setGeometry(QtCore.QRect(524, 203, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house6.sizePolicy().hasHeightForWidth())
self.house6.setSizePolicy(sizePolicy)
self.house6.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.house6.setText("")
self.house6.setObjectName("house6")
self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_7.setGeometry(QtCore.QRect(61, 384, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_7.sizePolicy().hasHeightForWidth())
self.pushButton_7.setSizePolicy(sizePolicy)
self.pushButton_7.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.pushButton_7.setText("")
self.pushButton_7.setObjectName("pushButton_7")
self.pushButton_9 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_9.setGeometry(QtCore.QRect(524, 384, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_9.sizePolicy().hasHeightForWidth())
self.pushButton_9.setSizePolicy(sizePolicy)
self.pushButton_9.setStyleSheet("border-image: url(:/img/Crystal_Clear_app_kfm_home.png);")
self.pushButton_9.setText("")
self.pushButton_9.setObjectName("pushButton_9")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 811, 27))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
self.menuAdmin = QtWidgets.QMenu(self.menubar)
self.menuAdmin.setObjectName("menuAdmin")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionOpen = QtWidgets.QAction(MainWindow)
self.actionOpen.setObjectName("actionOpen")
self.actionSave = QtWidgets.QAction(MainWindow)
self.actionSave.setObjectName("actionSave")
self.actionSave_As = QtWidgets.QAction(MainWindow)
self.actionSave_As.setObjectName("actionSave_As")
self.actionLogin = QtWidgets.QAction(MainWindow)
self.actionLogin.setObjectName("actionLogin")
self.actionSign_Up = QtWidgets.QAction(MainWindow)
self.actionSign_Up.setObjectName("actionSign_Up")
self.menuFile.addAction(self.actionOpen)
self.menuFile.addAction(self.actionSave)
self.menuFile.addAction(self.actionSave_As)
self.menuAdmin.addAction(self.actionLogin)
self.menuAdmin.addAction(self.actionSign_Up)
self.menubar.addAction(self.menuFile.menuAction())
self.menubar.addAction(self.menuAdmin.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "SWTDI Main Window"))
self.menuFile.setTitle(_translate("MainWindow", "File"))
self.menuAdmin.setTitle(_translate("MainWindow", "Admin"))
self.actionOpen.setText(_translate("MainWindow", "Open"))
self.actionSave.setText(_translate("MainWindow", "Save"))
self.actionSave_As.setText(_translate("MainWindow", "Save As"))
self.actionLogin.setText(_translate("MainWindow", "Login"))
self.actionSign_Up.setText(_translate("MainWindow", "Sign Up"))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(w)
w.show()
sys.exit(app.exec())
resource file:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>img/house.png</file>
<file>img/house2.png</file>
<file>img/NM_State_University_logo.png</file>
<file>img/NMlogo_1colorstate_black.png</file>
<file>img/NMlogo_1colorstate_red.tif</file>
<file>img/Crystal_Clear_app_kfm_home.png</file>
<file>img/Gohomenew.png</file>
<file>img/Search_in_home.png</file>
</qresource>
</RCC>
The button was created by the line I commented out. but anyways
I created another button with similar code I have seen around.
###################house 1#######
self.house1 = QPushButton(self.centralwidget)
#self.house1 = QtWidgets.QPushButton(self.centralwidget)
self.house1.setGeometry(QtCore.QRect(61, 21, 32, 19))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.house1.sizePolicy().hasHeightForWidth())
self.house1.setSizePolicy(sizePolicy)
self.house1.setStyleSheet("#House1 {\n"
"border-image: url(:/img/Crystal_Clear_app_kfm_home.png);\n"
"}\n"
"#House:Pressed {\n"
" border-image: url(:/img/Search_in_home.png);\n"
"}")
self.house1.setText("")
self.house1.setObjectName("house1")
####################end #############
The problem is caused by not using the names correctly, QStyleSheet uses the objectName property, in your case the QPushButton self.house1:
self.house1.setObjectName("house1")
Before writing that line the button has no objectName (actually its objectName is "") so it is not appropriate to place the QStyleSheet by the objectName.
What you should do is place an objectName and then you can just assign the filtered QStyleSheet by its name.
self.house1 = QtWidgets.QPushButton(self.centralwidget)
self.house1.setObjectName("house1")
self.house1.setStyleSheet("#house1 {\n"
"border-image: url(:/img/Crystal_Clear_app_kfm_home.png);\n"
"}\n"
"#house1:Pressed {\n"
" border-image: url(:/img/Search_in_home.png);\n"
"}")
This attribute is case-sensitive so you must place it exactly the same as setObjectName().
For more information you should read the following:
http://doc.qt.io/qt-5/stylesheet-syntax.html
http://doc.qt.io/qt-5/stylesheet-reference.html

Categories

Resources