Skip to content Skip to sidebar Skip to footer

Terminate Pyqt Application

If the user interacts with the application, for example pressing a button, and the user clicks then on the X button, the application keeps running, but the window closes. How can I

Solution 1:

Try it:

import sys
from PyQt5.QtWidgets import (QMainWindow, QLabel, QGridLayout, qApp,
                             QApplication, QWidget, QPushButton)
from PyQt5.QtCore import QSize, Qt   

class HelloWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Hello world") 

        centralWidget = QWidget()          
        self.setCentralWidget(centralWidget)   

        title = QLabel("Hello World from PyQt") 
        title.setAlignment(Qt.AlignCenter) 

        button = QPushButton("Quit")
        button.clicked.connect(qApp.quit)            # <---

        gridLayout = QGridLayout(centralWidget)          
        gridLayout.addWidget(title,  0, 0)
        gridLayout.addWidget(button, 1, 0)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWin = HelloWindow()
    mainWin.show()
    sys.exit( app.exec_() )

enter image description here

Solution 2:

Here is a simple "Hello World" example, I copied from the Qt tutorials. It uses sys.exit(...) to exit the application.

import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QLabel, QGridLayout, QWidget
from PyQt5.QtCore import QSize    

class HelloWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        self.setMinimumSize(QSize(640, 480))    
        self.setWindowTitle("Hello world") 

        centralWidget = QWidget(self)          
        self.setCentralWidget(centralWidget)   

        gridLayout = QGridLayout(self)     
        centralWidget.setLayout(gridLayout)  

        title = QLabel("Hello World from PyQt", self) 
        title.setAlignment(QtCore.Qt.AlignCenter) 
        gridLayout.addWidget(title, 0, 0)

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    mainWin = HelloWindow()
    mainWin.show()
    sys.exit( app.exec_() )

Post a Comment for "Terminate Pyqt Application"