J'ai un QMainWindow qui a un bouton, quand on clique sur ce bouton, un autre widget apparaît. Ce widget possède un bouton, lorsque vous cliquez sur ce bouton, un message d'alerte apparaît. Lorsque j'appuie sur 'OK' sur ce bouton, seul QMessageBox se ferme, un petit widget est toujours ouvert. Je veux fermer ce widget quand j'appuie sur 'OK' sur ce bouton de message. Je ne pouvais pas comprendre comment je peux faire ça. Voici mon code;PyQt5 comment détruire le dernier widget en cliquant sur le bouton 'OK' sur QMessageBox créé par un bouton sur ce widget
from PyQt5.QtWidgets import (QMessageBox,QApplication, QWidget, QToolTip, QPushButton,
QDesktopWidget, QMainWindow, QAction, qApp, QToolBar, QVBoxLayout,
QComboBox,QLabel,QLineEdit,QGridLayout,QMenuBar,QMenu,QStatusBar,
QTextEdit,QDialog,QFrame,QProgressBar,QHBoxLayout
)
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtGui import QIcon,QFont,QPixmap,QPalette,QWindow
from PyQt5.QtCore import QCoreApplication, Qt,QBasicTimer, QTimer,QPoint
import PyQt5.QtWidgets,PyQt5.QtCore
import time,random,subprocess,sys,json
class cssden(QMainWindow):
def __init__(self):
super().__init__()
self.mwidget = QMainWindow(self)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.setFixedSize(600,500)
#Other widget button
self.owidget = QPushButton(self)
self.owidget.clicked.connect(self.second_widget)
self.show()
#other widget
#I want to destroy this widget when I press 'OK' on the QMessageBox
def second_widget(self):
self.w_window = QWidget()
self.w_window.setGeometry(650,300,600,300)
self.w_window.setStyleSheet("background-color: lightblue")
self.w_button = QPushButton(self.w_window)
self.w_button.setText("Alert")
self.w_button.clicked.connect(self.alert)
self.w_window.show()
#alert from second widget
def alert(self):
QMessageBox.about(self.w_window,"Alert","Alert message")
app = QApplication(sys.argv)
app.setStyleSheet("QMainWindow{background-color: rgb(30,30,30);border: 1px solid black}")
ex = cssden()
sys.exit(app.exec_())
J'ai essayé de les relier (bouton « OK » de QMessageBox et dernier un widget) mais je ne pouvais pas le faire très bien et je suis vraiment confus.