【PySide6】pyqt关闭提示按钮汉化

在PyQT中,可以通过重写closeEvent()方法来控制窗口关闭行为。当用户尝试关闭窗口时,可以弹出一个对话框询问用户是否真的要退出程序。如果用户选择是,则使用os._exit(0)结束进程;否则忽略关闭事件,保持窗口打开。这个过程涉及到了信号与槽机制以及自定义消息框的汉化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pyqt关闭所有进程

如果您希望在用户尝试关闭窗口时忽略该操作并保持窗口打开状态,则可以重写 closeEvent() 方法并忽略关闭事件。以下是一个示例:

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui.action.triggered.connect(self.close) #调用close,会直接跳到closeEvent

    def closeEvent(self, event):
        """
        对MainWindow的函数closeEvent进行重构
        退出软件时结束所有进程
        :param event:
        :return:
        """
        reply = QtWidgets.QMessageBox.question(self,
                                               '本程序',
                                               "是否要退出程序?",
                                               QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,
                                               QtWidgets.QMessageBox.No)
        if reply == QtWidgets.QMessageBox.Yes:
            event.accept()
            os._exit(0)#如果用户单击“是”按钮,代码将调用os_exit(0),它将立即终止整个Python解释器进程,退出代码为0。
        else:
            event.ignore()

pyqt关闭提示按钮汉化

在这里插入图片描述

    def closeEvent(self, event):
        """
        对MainWindow的函数closeEvent进行重构
        退出软件时结束所有进程
        :param event:
        :return:
        """
        msg_box = QMessageBox()
        msg_box.setWindowTitle('提示')
        msg_box.setText('是否要退出程序?')
        msg_box.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
        msg_box.setDefaultButton(QMessageBox.No)

        yes_button = msg_box.button(QMessageBox.Yes)
        yes_button.setText('是')

        no_button = msg_box.button(QMessageBox.No)
        no_button.setText('否')
        reply = msg_box.exec_()
        if reply == QMessageBox.Yes:
            event.accept()
            os._exit(0)
        else:
            event.ignore()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KmBase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值