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

相关推荐
辞旧 lekkk4 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
帅次4 小时前
Kotlin 与 Java 互操作:混合工程里的平台类型与 API 边界
java·开发语言·kotlin·suspend·nullable
dtq04246 小时前
C语言-结构体详解
c语言·开发语言·学习
梅雅达编程笔记6 小时前
编程启蒙|Scratch 转 Python 系列第9天:字典/哈希表积木双向对照(AI大模型参数配置表实战)
开发语言·人工智能·python·numpy·pandas
持力行6 小时前
C++与Java变量声明、定义及内存分配的核心区别
java·开发语言·c++
zhz52147 小时前
GIS项目中空间参考转换与MBTiles偏移:问题成因、解法与避坑
python·vue·gis
jinyishu_7 小时前
C++ 继承全解:从基础到高级特性
开发语言·c++
KaMeidebaby8 小时前
卡梅德生物技术快报|如何制备单克隆抗体:小众禽类靶点单抗制备实操流程:双载体抗原交叉筛选完整工艺记录
人工智能·python·深度学习·算法·机器学习
乱写代码8 小时前
Pydantic学习--BaseModel
python
fu15935745689 小时前
【边缘计算实战】P1:从零搭建边云任务卸载仿真实验台(Python 可复现)
数据库·python·边缘计算