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)中时,将这个变量的值与上述标准按钮的枚举值进行比较,就可以确定用户点击了哪个按钮。

相关推荐
慧都小项4 分钟前
从 Figma 到 Qt:Qtitan 能减少哪些界面还原工作?
前端·qt·嵌入式·figma·图形界面·工业界面·qtitan
点心的游戏开发世界11 分钟前
GDScript 入门笔记(十六):文件读写与数据持久化
开发语言·笔记·游戏引擎·godot
栀椩15 分钟前
CODrone 无人机航拍车辆检测
pytorch·python·yolo
会飞的拖把20 分钟前
Python序列详解:列表、元组、字符串的通用操作(超详细版)
开发语言·windows·python
2601_9622838823 分钟前
如何通过python控制nbiot
python·串口通信·数据传输·nb-iot·at命令
reasonsummer40 分钟前
【办公类-115-01】20260906育儿知识(家园小报)批量制作(2026年9月-2027年6月)
开发语言·数据库·c#
君顾140 分钟前
智慧场馆解决方案小程序系统实战:从架构设计到上线指南
java·开发语言·智慧场馆
zhougl99641 分钟前
Dockerfile实战教程
java·开发语言·spring boot
FfHUCisI1 小时前
Golang 网络轮询器 netpoll:把阻塞 IO 变成事件通知
开发语言·网络·golang
XiaoQiao6669991 小时前
C 语言常用头文件及里面核心函数
c语言·开发语言