PyQt5: Change GUI Layout after button is clicked

Viewed 15

Hi I am a newbie on coding so please dont be harsh on me. I want to change GUI layout after a button click on PyQt5. I have a messy code here because I tried to create my widget with PyQt Designer. There are some answers in the net but because I created my widget via Designer I do not understand how I can Implement those solutions to my code. Thanks in Advance.

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow

class Ui_MailBot(object):
    def setupUi(self, MailBot):
        MailBot.setObjectName("MailBot")
        MailBot.resize(1019, 670)
        self.centralwidget = QtWidgets.QWidget(MailBot)
        self.centralwidget.setObjectName("centralwidget")
        
    #Buttons
    self.button_vendor_first_contact = QtWidgets.QPushButton(self.centralwidget)
    self.button_vendor_first_contact.setGeometry(QtCore.QRect(10, 80, 361, 81))
    self.button_vendor_first_contact.setObjectName("button_vendor_first_contact")
    self.button_soft_pull = QtWidgets.QPushButton(self.centralwidget)
    self.button_soft_pull.setGeometry(QtCore.QRect(10, 170, 361, 81))
    self.button_soft_pull.setObjectName("button_soft_pull")
    self.button_reminder = QtWidgets.QPushButton(self.centralwidget)
    self.button_reminder.setGeometry(QtCore.QRect(10, 260, 361, 91))
    self.button_reminder.setObjectName("button_reminder")
    self.text_type = QtWidgets.QLabel(self.centralwidget)
    self.text_type.setGeometry(QtCore.QRect(10, -30, 811, 141))
    font = QtGui.QFont()
    font.setPointSize(14)
    self.text_type.setFont(font)
    self.text_type.setObjectName("text_type")
    self.button_multiple_asins = QtWidgets.QPushButton(self.centralwidget)
    self.button_multiple_asins.setGeometry(QtCore.QRect(10, 360, 361, 91))
    self.button_multiple_asins.setObjectName("button_multiple_asins")
    self.button_no_stock = QtWidgets.QPushButton(self.centralwidget)
    self.button_no_stock.setGeometry(QtCore.QRect(10, 460, 361, 101))
    self.button_no_stock.setObjectName("button_no_stock")
    MailBot.setCentralWidget(self.centralwidget)
    self.statusbar = QtWidgets.QStatusBar(MailBot)
    self.statusbar.setObjectName("statusbar")
    MailBot.setStatusBar(self.statusbar)
    self.toolBar = QtWidgets.QToolBar(MailBot)
    self.toolBar.setObjectName("toolBar")
    MailBot.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
    
    
    
    #Button actions 
    self.button_vendor_first_contact.clicked.connect(self.clicked)

    self.retranslateUi(MailBot)
    QtCore.QMetaObject.connectSlotsByName(MailBot)
    
    



 def retranslateUi(self, MailBot):
        _translate = QtCore.QCoreApplication.translate
        MailBot.setWindowTitle(_translate("MailBot", "MailBot"))
        self.button_vendor_first_contact.setText(_translate("MailBot", "Vendor First Contact"))
        self.button_soft_pull.setText(_translate("MailBot", "Soft Pull"))
        self.button_reminder.setText(_translate("MailBot", "Reminder"))
        self.text_type.setText(_translate("MailBot", "Welcome to the mail automationBot. Please choose the mail type from below:"))
        self.button_multiple_asins.setText(_translate("MailBot", "Multiple Asins"))
        self.button_no_stock.setText(_translate("MailBot", "No Stock"))
        self.toolBar.setWindowTitle(_translate("MailBot", "toolBar"))

        
    def clicked(self):
        self.text_type.setText("you did it")





if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MailBot = QtWidgets.QMainWindow()
    ui = Ui_MailBot()
    ui.setupUi(MailBot)
    MailBot.show()
    sys.exit(app.exec_())
0 Answers
Related