Si l'utilisateur interagit avec l'application, par exemple en appuyant sur un bouton, et que l'utilisateur clique ensuite sur le bouton X, l'application continue de fonctionner, mais la fenêtre se ferme. Comment puis-je arrêter complètement l'application ? Elle est construite à l'aide de PyQt5.
Réponses
Trop de publicités?Essayez-le :
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_() )
Joey Mallone
Points
2344
Voici un exemple simple de "Hello World", que j'ai copié des tutoriels Qt. Il utilise sys.exit(...)
pour quitter l'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_() )