PySide6(PyQT5)的QMessageBox获取被点击按钮的三种方法

在PySide6(PyQT5)中,clickedButton与buttonClicked都可以获取点击的按钮,详细解释和区别见下文:

PySide6(PyQT5)的QMessageBox的clickedButton与buttonClicked的区别-CSDN博客

除了以上两种方法,还可以直接使用exec()返回值的方法来获取到被点击按钮。

python 复制代码
from PySide6.QtWidgets import QMessageBox, QApplication, QPushButton
import sys


def main():
    app = QApplication(sys.argv)
    # 创建一个消息框
    msg_box = QMessageBox()
    msg_box.setText("这是一个消息框")
    msg_box.setWindowTitle("自定义消息框")
    msg_box.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)

    # 获取到被点击按钮
    btn = msg_box.exec()
    if btn == QMessageBox.Ok:
        print("点击了确定按钮")
    else:
        print("点击了取消按钮")

if __name__ == "__main__":
    main()

• msg_box.exec() 的返回值是一个整数,该整数代表用户点击的标准按钮的枚举值。

在 PyQt5 中,QMessageBox 有一系列预定义的标准按钮枚举值,例如:

QMessageBox.Ok:表示用户点击了 "OK" 按钮,其枚举值通常为 1024。

QMessageBox.Cancel:表示用户点击了 "Cancel" 按钮,其枚举值通常为 4194304。

QMessageBox.Yes:表示用户点击了 "Yes" 按钮,其枚举值通常为 16384。

QMessageBox.No:表示用户点击了 "No" 按钮,其枚举值通常为 65536。

当调用 msg_box.exec() 并将其结果存储在一个变量(如 btn)中时,将这个变量的值与上述标准按钮的枚举值进行比较,就可以确定用户点击了哪个按钮。

相关推荐
molaifeng4 小时前
Go 语言如何实现高性能网络 I/O:Netpoller 模型揭秘
开发语言·网络·golang
崇山峻岭之间5 小时前
Matlab学习记录33
开发语言·学习·matlab
Evand J5 小时前
【2026课题推荐】DOA定位——MUSIC算法进行多传感器协同目标定位。附MATLAB例程运行结果
开发语言·算法·matlab
小二·5 小时前
Python Web 开发进阶实战:性能压测与调优 —— Locust + Prometheus + Grafana 构建高并发可观测系统
前端·python·prometheus
jllllyuz5 小时前
基于MATLAB的二维波场模拟程序(含PML边界条件)
开发语言·matlab
忆锦紫5 小时前
图像增强算法:Gamma映射算法及MATLAB实现
开发语言·算法·matlab
七牛云行业应用6 小时前
重构实录:我删了 5 家大模型 SDK,只留了 OpenAI 标准库
python·系统架构·大模型·aigc·deepseek
知乎的哥廷根数学学派6 小时前
基于多模态特征融合和可解释性深度学习的工业压缩机异常分类与预测性维护智能诊断(Python)
网络·人工智能·pytorch·python·深度学习·机器学习·分类
亲爱的非洲野猪6 小时前
Java锁机制八股文
java·开发语言
LawrenceLan6 小时前
Flutter 零基础入门(十二):枚举(enum)与状态管理的第一步
开发语言·前端·flutter·dart