Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to launch a second GUI application via a button click in another GUI application - python

How to launch a second GUI application via a button click in another GUI application - python

Scheduled Pinned Locked Moved Unsolved General and Desktop
pyqt5python3
2 Posts 2 Posters 1.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • StainopelS Offline
    StainopelS Offline
    Stainopel
    wrote on last edited by Stainopel
    #1

    Using QT designer, I have created two GUI apps using pyqt5 that are currently working independently. However, I would like to execute the second GUI by clicking a pushbutton ('share') in the first GUI. Been hitting a lot of hurdles so far and will very much appreciate any help and pointer I can get to make a fix. Below, is the a code snippet for the second GUI that I want to run via the first GUI

    from PyQt5 import QtCore, QtGui, QtWidgets
    
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.setEnabled(True)
            MainWindow.resize(496, 474)
            self.centralwidget = QtWidgets.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.scrollArea = QtWidgets.QScrollArea(self.centralwidget)
            self.scrollArea.setGeometry(QtCore.QRect(30, 30, 441, 401))
            self.scrollArea.setWidgetResizable(True)
            self.scrollArea.setObjectName("scrollArea")
            self.scrollAreaWidgetContents_2 = QtWidgets.QWidget()
            self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 439, 399))
            self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
            self.label_3 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
            self.label_3.setGeometry(QtCore.QRect(20, 170, 71, 20))
            font = QtGui.QFont()
            font.setPointSize(12)
            self.label_3.setFont(font)
            self.label_3.setObjectName("label_3")
            self.pushButton = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
            self.pushButton.setGeometry(QtCore.QRect(360, 160, 61, 31))
            font = QtGui.QFont()
            font.setPointSize(12)
            self.pushButton.setFont(font)
            self.pushButton.setObjectName("pushButton")
            self.pushButton_2 = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
            self.pushButton_2.setGeometry(QtCore.QRect(340, 30, 71, 41))
            font = QtGui.QFont()
            font.setPointSize(12)
            self.pushButton_2.setFont(font)
            self.pushButton_2.setObjectName("pushButton_2")
            self.textEdit_3 = QtWidgets.QTextEdit(self.scrollAreaWidgetContents_2)
            self.textEdit_3.setGeometry(QtCore.QRect(100, 20, 231, 71))
            self.textEdit_3.setObjectName("textEdit_3")
            self.label_4 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
            self.label_4.setGeometry(QtCore.QRect(10, 50, 81, 20))
            font = QtGui.QFont()
            font.setPointSize(12)
            self.label_4.setFont(font)
            self.label_4.setObjectName("label_4")
            self.pushButton_3 = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
            self.pushButton_3.setGeometry(QtCore.QRect(180, 340, 101, 41))
            font = QtGui.QFont()
            font.setPointSize(12)
            self.pushButton_3.setFont(font)
            self.pushButton_3.setObjectName("pushButton_3")
            self.label_2 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
            self.label_2.setGeometry(QtCore.QRect(170, 120, 91, 21))
            font = QtGui.QFont()
            font.setPointSize(12)
            self.label_2.setFont(font)
            self.label_2.setObjectName("label_2")
            self.line = QtWidgets.QFrame(self.scrollAreaWidgetContents_2)
            self.line.setGeometry(QtCore.QRect(70, 100, 301, 20))
            self.line.setFrameShape(QtWidgets.QFrame.HLine)
            self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
            self.line.setObjectName("line")
            self.textEdit = QtWidgets.QTextEdit(self.scrollAreaWidgetContents_2)
            self.textEdit.setGeometry(QtCore.QRect(100, 160, 251, 31))
            self.textEdit.setObjectName("textEdit")
            self.label_5 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
            self.label_5.setGeometry(QtCore.QRect(10, 230, 101, 20))
            font = QtGui.QFont()
            font.setPointSize(12)
            self.label_5.setFont(font)
            self.label_5.setObjectName("label_5")
            self.textEdit_4 = QtWidgets.QTextEdit(self.scrollAreaWidgetContents_2)
            self.textEdit_4.setGeometry(QtCore.QRect(100, 220, 251, 31))
            self.textEdit_4.setObjectName("textEdit_4")
            self.pushButton_4 = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
            self.pushButton_4.setGeometry(QtCore.QRect(360, 220, 61, 31))
            font = QtGui.QFont()
            font.setPointSize(12)
            self.pushButton_4.setFont(font)
            self.pushButton_4.setObjectName("pushButton_4")
            self.label = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
            self.label.setGeometry(QtCore.QRect(30, 300, 47, 20))
            font = QtGui.QFont()
            font.setPointSize(12)
            self.label.setFont(font)
            self.label.setObjectName("label")
            self.textEdit_2 = QtWidgets.QTextEdit(self.scrollAreaWidgetContents_2)
            self.textEdit_2.setGeometry(QtCore.QRect(100, 290, 321, 31))
            self.textEdit_2.setObjectName("textEdit_2")
            self.scrollArea.setWidget(self.scrollAreaWidgetContents_2)
            MainWindow.setCentralWidget(self.centralwidget)
            self.menubar = QtWidgets.QMenuBar(MainWindow)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 496, 21))
            self.menubar.setObjectName("menubar")
            MainWindow.setMenuBar(self.menubar)
            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", "Send File"))
            self.label_3.setText(_translate("MainWindow", "+ File"))
            self.pushButton.setText(_translate("MainWindow", "Open"))
            self.pushButton_2.setText(_translate("MainWindow", "Convert"))
            self.textEdit_3.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
    "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
    "p, li { white-space: pre-wrap; }\n"
    "</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
    "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
            self.label_4.setText(_translate("MainWindow", "Paste Hash"))
            self.pushButton_3.setText(_translate("MainWindow", "Send"))
            self.label_2.setText(_translate("MainWindow", "Attachments"))
            self.label_5.setText(_translate("MainWindow", "+ File Hash"))
            self.pushButton_4.setText(_translate("MainWindow", "Open"))
            self.label.setText(_translate("MainWindow", "Email"))
    
    
    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_())
    
    
    JonBJ 1 Reply Last reply
    0
    • StainopelS Stainopel

      Using QT designer, I have created two GUI apps using pyqt5 that are currently working independently. However, I would like to execute the second GUI by clicking a pushbutton ('share') in the first GUI. Been hitting a lot of hurdles so far and will very much appreciate any help and pointer I can get to make a fix. Below, is the a code snippet for the second GUI that I want to run via the first GUI

      from PyQt5 import QtCore, QtGui, QtWidgets
      
      class Ui_MainWindow(object):
          def setupUi(self, MainWindow):
              MainWindow.setObjectName("MainWindow")
              MainWindow.setEnabled(True)
              MainWindow.resize(496, 474)
              self.centralwidget = QtWidgets.QWidget(MainWindow)
              self.centralwidget.setObjectName("centralwidget")
              self.scrollArea = QtWidgets.QScrollArea(self.centralwidget)
              self.scrollArea.setGeometry(QtCore.QRect(30, 30, 441, 401))
              self.scrollArea.setWidgetResizable(True)
              self.scrollArea.setObjectName("scrollArea")
              self.scrollAreaWidgetContents_2 = QtWidgets.QWidget()
              self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 439, 399))
              self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
              self.label_3 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
              self.label_3.setGeometry(QtCore.QRect(20, 170, 71, 20))
              font = QtGui.QFont()
              font.setPointSize(12)
              self.label_3.setFont(font)
              self.label_3.setObjectName("label_3")
              self.pushButton = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
              self.pushButton.setGeometry(QtCore.QRect(360, 160, 61, 31))
              font = QtGui.QFont()
              font.setPointSize(12)
              self.pushButton.setFont(font)
              self.pushButton.setObjectName("pushButton")
              self.pushButton_2 = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
              self.pushButton_2.setGeometry(QtCore.QRect(340, 30, 71, 41))
              font = QtGui.QFont()
              font.setPointSize(12)
              self.pushButton_2.setFont(font)
              self.pushButton_2.setObjectName("pushButton_2")
              self.textEdit_3 = QtWidgets.QTextEdit(self.scrollAreaWidgetContents_2)
              self.textEdit_3.setGeometry(QtCore.QRect(100, 20, 231, 71))
              self.textEdit_3.setObjectName("textEdit_3")
              self.label_4 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
              self.label_4.setGeometry(QtCore.QRect(10, 50, 81, 20))
              font = QtGui.QFont()
              font.setPointSize(12)
              self.label_4.setFont(font)
              self.label_4.setObjectName("label_4")
              self.pushButton_3 = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
              self.pushButton_3.setGeometry(QtCore.QRect(180, 340, 101, 41))
              font = QtGui.QFont()
              font.setPointSize(12)
              self.pushButton_3.setFont(font)
              self.pushButton_3.setObjectName("pushButton_3")
              self.label_2 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
              self.label_2.setGeometry(QtCore.QRect(170, 120, 91, 21))
              font = QtGui.QFont()
              font.setPointSize(12)
              self.label_2.setFont(font)
              self.label_2.setObjectName("label_2")
              self.line = QtWidgets.QFrame(self.scrollAreaWidgetContents_2)
              self.line.setGeometry(QtCore.QRect(70, 100, 301, 20))
              self.line.setFrameShape(QtWidgets.QFrame.HLine)
              self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
              self.line.setObjectName("line")
              self.textEdit = QtWidgets.QTextEdit(self.scrollAreaWidgetContents_2)
              self.textEdit.setGeometry(QtCore.QRect(100, 160, 251, 31))
              self.textEdit.setObjectName("textEdit")
              self.label_5 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
              self.label_5.setGeometry(QtCore.QRect(10, 230, 101, 20))
              font = QtGui.QFont()
              font.setPointSize(12)
              self.label_5.setFont(font)
              self.label_5.setObjectName("label_5")
              self.textEdit_4 = QtWidgets.QTextEdit(self.scrollAreaWidgetContents_2)
              self.textEdit_4.setGeometry(QtCore.QRect(100, 220, 251, 31))
              self.textEdit_4.setObjectName("textEdit_4")
              self.pushButton_4 = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
              self.pushButton_4.setGeometry(QtCore.QRect(360, 220, 61, 31))
              font = QtGui.QFont()
              font.setPointSize(12)
              self.pushButton_4.setFont(font)
              self.pushButton_4.setObjectName("pushButton_4")
              self.label = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
              self.label.setGeometry(QtCore.QRect(30, 300, 47, 20))
              font = QtGui.QFont()
              font.setPointSize(12)
              self.label.setFont(font)
              self.label.setObjectName("label")
              self.textEdit_2 = QtWidgets.QTextEdit(self.scrollAreaWidgetContents_2)
              self.textEdit_2.setGeometry(QtCore.QRect(100, 290, 321, 31))
              self.textEdit_2.setObjectName("textEdit_2")
              self.scrollArea.setWidget(self.scrollAreaWidgetContents_2)
              MainWindow.setCentralWidget(self.centralwidget)
              self.menubar = QtWidgets.QMenuBar(MainWindow)
              self.menubar.setGeometry(QtCore.QRect(0, 0, 496, 21))
              self.menubar.setObjectName("menubar")
              MainWindow.setMenuBar(self.menubar)
              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", "Send File"))
              self.label_3.setText(_translate("MainWindow", "+ File"))
              self.pushButton.setText(_translate("MainWindow", "Open"))
              self.pushButton_2.setText(_translate("MainWindow", "Convert"))
              self.textEdit_3.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
      "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
      "p, li { white-space: pre-wrap; }\n"
      "</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
      "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
              self.label_4.setText(_translate("MainWindow", "Paste Hash"))
              self.pushButton_3.setText(_translate("MainWindow", "Send"))
              self.label_2.setText(_translate("MainWindow", "Attachments"))
              self.label_5.setText(_translate("MainWindow", "+ File Hash"))
              self.pushButton_4.setText(_translate("MainWindow", "Open"))
              self.label.setText(_translate("MainWindow", "Email"))
      
      
      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_())
      
      
      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by JonB
      #2

      @Stainopel
      None of this seems relevant. Either you don't really want separate applications but just one and you just want to show the other widget. Or, to run another application as you ask, use Qt's QProcess, or the Python ones for running sub-processes if you prefer, called from your button clicked slot.

      1 Reply Last reply
      1

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved