我是 PyQT 的新手。我正在将我的一个应用程序从 tkinter 转移到 PyQT。我想要的是以下场景:当用户单击 X 按钮时,会出现询问用户是否确定关闭的消息框,而主屏幕仍处于打开状态。但是,在我的代码中,当单击 X 按钮时,主屏幕首先消失并出现消息框。我怎样才能解决这个“订单问题”——正如我所说的?我的代码如下:
(在root.protocol("WM_DELETE_WINDOW", on_closing)tkinter 中,使用代码和包含messagebox.askokcancel("Quit", "Do you want to quit Chit-Chat?")命令的 on_closure 函数很容易。但是,我无法在 PyQT 中弄清楚。)
app = QApplication(sys.argv)
v_box = QVBoxLayout()
window = QWidget()
label = QLabel("Hello World")
v_box.addWidget(label)
def closeEvent():
msg_box = QMessageBox()
choice = QMessageBox.question(msg_box, "Quit", "Do you want to quit chit chat?", QMessageBox.Yes | QMessageBox.No)
if choice == QMessageBox.Yes:
print("The program was shut down.")
sys.exit()
else:
pass
app.aboutToQuit.connect(closeEvent)
window.setLayout(v_box)
window.show()
sys.exit(app.exec())
红颜莎娜
相关分类