亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PyQT CloseEvent 函數:主窗口消失

PyQT CloseEvent 函數:主窗口消失

qq_遁去的一_1 2021-10-26 18:55:24
我是 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:        passapp.aboutToQuit.connect(closeEvent)window.setLayout(v_box)window.show()sys.exit(app.exec())
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

您可以選擇是否接受該事件。


def closeEvent(self, event):

    if self.popup_question():

        print("The program was shut down.")

        event.accept()

    else:

        print("not exiting")

        event.ignore()


def popup_question(self):

    """Generate a popup that requests if you want to do something or not."""

    msgbox = QtWidgets.QMessageBox()

    msgbox.setWindowTitle("Whatever title you want to add.")

    msgbox.setIcon(QtWidgets.QMessageBox.Warning)

    msgbox.setText("Do you want to quit chit chat?")

    botonyes = QtWidgets.QPushButton("Yes")

    msgbox.addButton(botonyes, QtWidgets.QMessageBox.YesRole)

    botonno = QtWidgets.QPushButton("No")

    msgbox.addButton(botonno, QtWidgets.QMessageBox.NoRole)

    msgbox.exec_()

    if msgbox.clickedButton() == botonno:

        return False

    else:

        return True


查看完整回答
反對 回復 2021-10-26
  • 3 回答
  • 0 關注
  • 410 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號