I want to create dynamic object names and stack pages inside the Main Window page with PyQt5. I made some researches on the internet to get information about this, but I could not create dynamic variables in this class as I wanted. What methods should I use to create dynamic stack pages?
My Code:
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication
from User_UIs import deleteProcess, addProcessUI, connectServer
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(830, 568)
MainWindow.setWindowFlag(Qt.FramelessWindowHint)
MainWindow.setStyleSheet("background-color: rgb(40, 40, 50);")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
#Add Stacked Widget
self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
self.stackedWidget.setGeometry(QtCore.QRect(246, 30, 584, 461))
self.stackedWidget.setFrameShape(QtWidgets.QFrame.NoFrame)
self.stackedWidget.setObjectName("stackedWidget")
#Add Stacked Widget Page 1
# static object definition
self.feedingPage = QtWidgets.QWidget()
self.feedingPage.setObjectName("feedingPage")
# Add row button for tableWidget
self.addRowButton = QtWidgets.QPushButton(self.groupBox)
self.addRowButton.setGeometry(QtCore.QRect(501, 210, 75, 23))
self.addRowButton.setStyleSheet(open('buttonStylesheet.css').read())
icon7 = QtGui.QIcon()
icon7.addPixmap(QtGui.QPixmap("Icons/icons8-add-row-50.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.addRowButton.setIcon(icon7)
self.addRowButton.setObjectName("addRowButton")
# TableWidget Definition
self.measuringItemTable1 = QtWidgets.QTableWidget(self.groupBox)
self.measuringItemTable1.setGeometry(QtCore.QRect(0, 250, 591, 211))
self.measuringItemTable1.setStyleSheet(
"background-color: rgb(240, 240, 240);\n""color: rgb(80, 80, 105);\n""\n"" border-style: outset;\n"" border-width: 0px;")
self.measuringItemTable1.setObjectName("measuringItemTable1")
self.measuringItemTable1.setColumnCount(3)
self.measuringItemTable1.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.measuringItemTable1.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.measuringItemTable1.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.measuringItemTable1.setHorizontalHeaderItem(2, item)
self.measuringItemTable1.horizontalHeader().setDefaultSectionSize(188)
self.minFedTempEdit1 = QtWidgets.QLineEdit(self.groupBox)
self.minFedTempEdit1.setGeometry(QtCore.QRect(260, 90, 211, 20))
self.minFedTempEdit1.setStyleSheet(
"background-color: rgb(240, 240, 240);\n""color: rgb(40, 40, 40);\n""font: 63 9pt \"Yu Gothic UI Semibold\";")
self.minFedTempEdit1.setObjectName("minFedTempEdit1")
self.stackedWidget.addWidget(self.feedingPage)
#Stacked Page 1 End
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
self.stackedWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Test Page"))
"""
Another text set codes
"""
Main Window Execute
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
mainUi = Ui_MainWindow()
mainUi.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())