继承于  QDialog

对话框的构成:

构造函数法:

  1. import sys
  2. from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox,QCheckBox
  3. from PyQt5.QtCore import Qt
  4. from PyQt5.QtGui import QPixmap
  5.  
  6. class Demo(QWidget):
  7. def __init__(self):
  8. super(Demo, self).__init__()
  9. mb=QMessageBox(self) #创建信息对话框
  10. #继承于QDialog,需要show,exec,open来弹出
  11. #默认是一个模态对话框,即使show弹出的对话框也是模态的
  12.  
  13. #mb = QMessageBox(QMessageBox.NoIcon,'对话框标题','<h2>主要标题信息</h2>',QMessageBox.Ok | QMessageBox.Discard ,self)
  14. #参数1 图标:
  15. #QMessageBox.NoIcon 没有图标
  16. # QMessageBox.Warning 警告图标
  17. #QMessageBox.Critical 严重问题图标
  18. #QMessageBox.Information 没有任何异常图标
  19. #QMessageBox.Question 提问图标
  20. #参数2 对话框标题
  21. #参数3 主要标题信息--可以是富文本
  22. #参数4 按钮:
  23. #QMessageBox.Ok 使用AcceptRole定义的“确定”按钮
  24. #QMessageBox.Discard “丢弃”或“不保存”按钮,具体取决于使用DestructiveRole定义的平台
  25. #QMessageBox.Open 使用AcceptRole定义的“打开”按钮。
  26. #QMessageBox.Save 使用AcceptRole定义的“保存”按钮。
  27. #QMessageBox.Cancel 使用RejectRole定义的“取消”按钮。
  28. #QMessageBox.Close 使用RejectRole定义的“关闭”按钮。
  29. #QMessageBox.Apply 使用ApplyRole定义的“应用”按钮。
  30. #QMessageBox.Reset 使用ResetRole定义的“重置”按钮。
  31. #QMessageBox.RestoreDefaults 使用ResetRole定义的“恢复默认值”按钮。
  32. #QMessageBox.SaveAll 使用AcceptRole定义的“全部保存”按钮。
  33. #QMessageBox.Yes 使用YesRole定义的“是”按钮。
  34. #QMessageBox.YesToAll 使用YesRole定义的“Yes to All”按钮。
  35. #QMessageBox.No 使用NoRole定义的“否”按钮。
  36. #QMessageBox.Help 使用HelpRole定义的“帮助”按钮。
  37. #QMessageBox.NoToAll 使用NoRole定义的“No to All”按钮。
  38. #QMessageBox.Abort 使用RejectRole定义的“Abort”按钮。
  39. #QMessageBox.Retry 使用AcceptRole定义的“重试”按钮。
  40. #QMessageBox.Ignore 使用AcceptRole定义的“忽略”按钮。
  41. #QMessageBox.NoButton 无效按钮。
  42.  
  43. self.mb=mb
  44.  
  45. #mb.setModal(False) #设置是否模态对话框
  46. mb.setWindowModality(Qt.NonModal) #设置成非模态
  47.  
  48. mb.setIcon(QMessageBox.Question) #设置标准图标
  49.  
  50. mb.setIconPixmap(QPixmap('./大象.png').scaled(100,100)) #用自定义图像做图标
  51.  
  52. mb.setTextFormat(Qt.AutoText) #设置文本格式
  53. #Qt.PlainText 普通文本
  54. #Qt.RichText 富文本--默认
  55. #Qt.AutoText 自动识别
  56.  
  57. mb.setText('<h2>我是主要标题信息</h2>') #设置主要标题信息---支持富文本
  58.  
  59. mb.setInformativeText('<h3>提示信息</h3>') #设置提示信息---支持富文本
  60. #informativeText() 返回提示文本
  61.  
  62. mb.setCheckBox(QCheckBox('复选框',mb)) #设置复选框
  63.  
  64. mb.setDetailedText('我是详细文本') #设置详细文本---不支持富文本
  65.  
  66. #按钮:
  67. mb.setStandardButtons(QMessageBox.Yes ) #添加标准按钮
  68. #设置了Yes和No按钮
  69. #按钮类型看上面
  70.  
  71. btn=QPushButton('按钮1',mb)
  72. mb.addButton(btn,QMessageBox.YesRole) #添加自定义按钮--方式一
  73. btn1=mb.addButton('按钮2', QMessageBox.NoRole) #方式二
  74. #参数2 按钮角色:
  75. #YesRole 按钮是一个“是”的按钮
  76. #InvalidRole 该按钮无效
  77. #AcceptRole 单击该按钮将使对话框被接受(例如,确定)
  78. #RejectRole 单击该按钮会导致拒绝对话框(例如取消)
  79. #DestructiveRole 单击该按钮会导致破坏性更改(例如,对于Discarding Changes)并关闭对话框
  80. #ActionRole 单击该按钮将导致更改对话框中的元素
  81. #HelpRole 可以单击该按钮以请求帮助。
  82. #NoRole 按钮是一个“无”按钮。
  83. #ApplyRole 该按钮应用当前更改。
  84. #ResetRole 该按钮将对话框的字段重置为默认值。
  85. #返回值:按钮对象
  86.  
  87. btn5=mb.button(QMessageBox.Yes) #返回标准按钮的对象
  88.  
  89. s=mb.buttonRole(btn1) #返回按钮的角色对象
  90.  
  91. #mb.removeButton(btn1) #移除按钮
  92.  
  93. mb.setDefaultButton(btn1) #设置自定义默认按钮
  94. mb.setDefaultButton(QMessageBox.Yes) #设置标准默认按钮
  95.  
  96. s=mb.defaultButton() #返回默认按钮
  97.  
  98. mb.setEscapeButton(btn1) #设置ESC所对应的按钮--自定义
  99. mb.setEscapeButton(QMessageBox.Yes) #设置ESC所对应的按钮--标准按钮
  100.  
  101. mb.setTextInteractionFlags(Qt.NoTextInteraction) #设置文本交互标志--针对主要标题信息
  102. #Qt.TextEditorInteraction 允许文本交互---允许编辑
  103. #Qt.NoTextInteraction 不允许交互
  104.  
  105. #信号:
  106. mb.buttonClicked.connect(self.AA) #按钮被点击时发出信号
  107. #会把被点击的按钮对象传递给槽函数
  108.  
  109. print(s)
  110. mb.show()
  111.  
  112. def AA(self,bt):
  113. print('按钮被点击了',bt)
  114. print('点击的按钮是:', self.mb.clickedButton())
  115. # clickedButton() #返回被点击的按钮
  116.  
  117. if __name__ == '__main__':
  118. app = QApplication(sys.argv)
  119. demo = Demo()
  120. demo.show()
  121. sys.exit(app.exec_())

静态方法:

  1. QMessageBox.about(self,'xx1','xx2') #展示关于消息框
    #参数2 对话框标题
    #参数3 提示消息

  1. r=QMessageBox.question(self,'xx1','xx2',QMessageBox.Yes | QMessageBox.No,QMessageBox.No) #展示提问消息框
    #参数4 按钮
    #参数5 默认按钮
    #返回值:整型值 按钮的编码

  1.  
  1. r=QMessageBox.warning(self,'xx1','xx2',QMessageBox.Yes | QMessageBox.No,QMessageBox.No) #展示警告消息框
    #参数4 按钮
    #参数5 默认按钮
    #返回值:整型值 按钮的编码

  1.  
  1. r=QMessageBox.critical(self,'xx1','xx2',QMessageBox.Yes | QMessageBox.No,QMessageBox.No) #展示警告消息框
    #参数4 按钮
    #参数5 默认按钮
    #返回值:整型值 按钮的编码

  1. r=QMessageBox.information(self,'xx1','xx2',QMessageBox.Yes | QMessageBox.No,QMessageBox.No) #展示警告消息框
    #参数4 按钮
    #参数5 默认按钮
    #返回值:整型值 按钮的编码

天子骄龙

  1.  

天子骄龙

QMessageBox消息框的更多相关文章

  1. pyqt5消息框QMessageBox

    QMessageBox消息框有以下几种类型: QMessageBox.information 信息框   QMessageBox.question 问答框   QMessageBox.warning ...

  2. Python——pyqt5——消息框(QMessageBox)

    一.提供的类型 QMessageBox.information 信息框 QMessageBox.question 问答框 QMessageBox.warning 警告 QMessageBox.ctit ...

  3. Qt5 托盘模仿qq闪烁,弹消息框实现

    在别人代码基础上做的,课设刚好用上了,贴出来分享Qt5.5.1实现. 图片自己找. #ifndef DIALOG_H #define DIALOG_H #include <QDialog> ...

  4. qt5---QMessageBox消息框

    需要  #include <QMessageBox> QMessageBox::StandardButton sb; sb=QMessageBox::critical(this," ...

  5. 一步步开发自己的博客 .NET版(10、前端对话框和消息框的实现)

    关于前端对话框.消息框的优秀插件多不胜数.造轮子是为了更好的使用轮子,并不是说自己造的轮子肯定好.所以,这个博客系统基本上都是自己实现的,包括日志记录.响应式布局.评论功能等等一些本可以使用插件的.好 ...

  6. WPF弹出带蒙板的消息框

    效果图 思路 拿到父级窗体的内容,放入一个容器里,再在容器里放入一个半透明层.将整个容器赋给父级窗体的内容. 关闭时反向操作. 代码 消息窗弹出时 /// <summary> /// 弹出 ...

  7. JavaScript (If...Else和Switch和循环遍历) 语句以及常用消息框

    If...Else 语句 JavaScript中if...else语句和Java中的语法和使用方法是一样的. 只是在JavaScript中要使用小写字母.使用大写的 IF 会出错! 至于if...el ...

  8. 【C#】分享一个可携带附加消息的增强消息框MessageBoxEx

    --------------201507160917更新--------------- 无意中发现标准消息框在Windows7是有声音的,只是在Windows server 2008(R2)无声,而我 ...

  9. JavaScript 消息框+特殊字符

    JavaScript 中创建三种消息框:警告框.确认框.提示框: 1.警告框: 警告框经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行操作 语法:alert(&qu ...

随机推荐

  1. 一个很初级的错误 Destructor忘记override导致内存泄露

      TxxObj= class    public     Destructor Destroy(); override;!!!此处若无override,将导致内存泄露     end; Destru ...

  2. Bootstrap面板

    前面的话 面板(Panels)是Bootstrap框架新增的一个组件,某些时候可能需要将某些 DOM 内容放到一个盒子里.对于这种情况,可以使用面板组件.本文将详细介绍Bootstrap面板 基础面板 ...

  3. solr 字段设置不存储表示不会进行分词

    solr 字段设置不存储表示不会进行分词

  4. python 抽象类与接口类

    几个类 实现的方法都一致的话 就继承同一个父类 在父类写一个公共方法 给子类使用

  5. 百度/头条合作命中注定!中国新BAT要来了

    据外媒报道,今日头条母公司字节跳动(ByteDace)将为中国互联网传统BAT的格局,带来一些新的活力.这家增速飞快的新闻.视频App“制造者”已经估值高达750亿美元,与三巨头之一的百度平起平坐,后 ...

  6. [代码]--c#-实现局域网聊天

    服务器端: using System; using System.Collections.Generic; using System.Linq; using System.Net; using Sys ...

  7. Django-website 程序案例系列-10 cookie 和 session的应用

    cookie:  现在所有网站基本都要开启cookie 客户端浏览器上的一个文件 例如:   {‘key’: 'sefwefqefwefw'} 是一个键值对 简单实现cookie认证: user_in ...

  8. 使用JQuery进行DOM操作

    获得内容 - text().html() 以及 val() 三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元 ...

  9. Linux 系统免密码登陆远程服务器

    在当前Linux生成公钥私钥ssh-keygen公钥私钥存放路径为:~/root/.ssh/id_rsa id_rsa.pub 登陆被远程主机,进入目录~/root/.ssh/是否存在authoriz ...

  10. NodeJS - Express 4.0错误:Cannot read property 'Store' of undefined

    按着<NodeJS开发指南>里的第五章建立microblog的例子操作,使用node.js 的express框架配置将session存储到mongodb时出错:TypeError: Can ...