PyQt介绍——弹框介绍和使用

PyQt介绍——弹框介绍和使用

一、QMessageBox

QMessageBox是一种通用的弹出式对话框,用于显示消息,允许用户通过单击不同的标准按钮对消息进行反馈

QMessageBox类提供了许多常用的弹出式对话框,如提示、警告、错误、询问、关于等对话框。这些不同类型的QMessageBox对话框只是显示时的图标不同,其他功能是一样的。

QMessageBox有四种类型:information、question、warning和critical。

  • information类型
    information类型的QMessageBox显示一个信息框,它通常用来提醒用户一些详细但不关键的信息。我们可以在标题和内容之间添加一个图标或在右上角添加一个帮助按钮。代码如下:

  • question类型
    question类型的QMessageBox通常用来显示一些需要用户回答“是”或“否”的问题。它可以有默认按钮和一些可选按钮,例如‘Yes’、‘No’、‘Cancel’和‘Help’等。如果你嵌入到应用程序的窗口中,它还可以显示一个缩小、关闭和拓展按钮,代码如下:

  • warning类型
    warning类型的QMessageBox通常用来警告用户可能会影响程序使用的一些操作或过程。例如,它在一些需要警告的代码中经常被使用。代码如下:

  • critical类型
    critical类型的QMessageBox在某些错误情况下被使用,例如程序崩溃、网络断开等。它是一种需要注意并进行处理的警告类型。代码如下:

from PyQt5.QtWidgets import *
import sysclass TestWidget(QWidget):def __init__(self):super(TestWidget, self).__init__()self.resize(400, 200)self.setWindowTitle("弹窗测试")self.main_layout = QVBoxLayout()self.main_layout.setContentsMargins(10, 10, 10, 10)self.setLayout(self.main_layout)self.button1 = QPushButton('消息对话框', self)self.button2 = QPushButton('提问对话框', self)self.button3 = QPushButton('警告对话框', self)self.button4 = QPushButton('严重错误对话框', self)self.button5 = QPushButton('关于对话框', self)self.main_layout.addWidget(self.button1)self.main_layout.addWidget(self.button2)self.main_layout.addWidget(self.button3)self.main_layout.addWidget(self.button4)self.main_layout.addWidget(self.button5)self.button1.clicked.connect(self.show_info_dialog)self.button2.clicked.connect(self.show_question_dialog)self.button3.clicked.connect(self.show_warning_dialog)self.button4.clicked.connect(self.show_critical_dialog)self.button5.clicked.connect(self.show_about_dialog)def show_info_dialog(self):QMessageBox.information(self, '提示信息', 'hello,提示你一下')  # 可以不带选择按键,也可以带ok按键# QMessageBox.information(self, '提示信息', 'hello,提示你一下',  QMessageBox.Yes | QMessageBox.No, QMessageBox.No)def show_question_dialog(self):reply = QMessageBox.question(self, '有个问题', '你确定要这么干吗?',  QMessageBox.Yes | QMessageBox.No, QMessageBox.No)if reply == QMessageBox.Yes:print("ok")else:print("no no no!")def show_warning_dialog(self):QMessageBox.warning(self, '此处有告警', '有告警发生',  QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)def show_critical_dialog(self):# 弹出信息对话框QMessageBox.critical(self, '慎重', '发生严重错误',  QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)def show_about_dialog(self):# 弹出信息对话框QMessageBox.about(self, '不知道', '关于对话')app = QApplication(sys.argv)
window = TestWidget()
window.show()
sys.exit(app.exec_())

二、QInputDialog

QInputDialog控件是一个标准对话框,由一个文本框和两个按钮(OK 按钮和Cancel 按钮)组成。
在这里插入图片描述

  • 输入文本
value, ok = QInputDialog.getText(self, "输入框标题", "这是提示信息\n\n请输入文本:", QLineEdit.Normal, "这是默认值")  # 第三个参数表示显示类型,可选,有正常(QLineEdit.Normal)、密碼( QLineEdit. Password)、不显示( QLineEdit. NoEcho)三种情况
  • 输入多行文本
 value, ok = QInputDialog.getMultiLineText(self, "输入框标题", "输入您的地址:", "默认的\n地址是\n中国北京东城区")
  • 输入整数
value, ok = QInputDialog.getInt(self, "整数弹窗", "输入整数\n\n请输入整数:", 22, -10000, 10000, 2)  # 后面四个数字的作用依次是 初始值 最小值 最大值 步幅
  • 输入小数
value, ok = QInputDialog.getDouble(self, "数字弹窗", "请选择一个整数\n\n请输入整数:", 37.56, -10000, 10000, 2)  # 后面四个数字的作用依次是 初始值 最小值 最大值 小数点后位数
  • 输入选项
items = ["Spring", "Summer", "Fall", "Winter"]
value, ok = QInputDialog.getItem(self, "季节选择弹窗", "请选择一个季节\n\n请选择季节:", items, 1, True)  # 1为默认选中选项目,True/False 列表框是否可编辑。

例子:

import sys
from PyQt5.QtWidgets import *class InputdialogWidget(QWidget):def __init__(self, parent=None):super(InputdialogWidget, self).__init__(parent)layout = QFormLayout()self.btn1 = QPushButton("获得季节")self.btn1.clicked.connect(self.getItem)self.le1 = QLineEdit()layout.addRow(self.btn1, self.le1)self.btn2 = QPushButton("获得名字")self.btn2.clicked.connect(self.getIext)self.le2 = QLineEdit()layout.addRow(self.btn2, self.le2)self.btn3 = QPushButton("获得整数")self.btn3.clicked.connect(self.getInt)self.le3 = QLineEdit()layout.addRow(self.btn3, self.le3)self.setLayout(layout)self.setWindowTitle("Input Dialog 例子")def getItem(self):items = ["Spring", "Summer", "Fall", "Winter"]item, ok = QInputDialog.getItem(self, "选择一个季节","季节列表\n\n请选择季节:", items, 1, False)if ok and item:self.le1.setText(item)def getIext(self):text, ok = QInputDialog.getText(self, '输入姓名的弹窗', '输入姓名:')if ok:self.le2.setText(str(text))def getInt(self):num, ok = QInputDialog.getInt(self, "输入数字弹窗", "输入数字", 22, -10000, 10000, 2)if ok:self.le3.setText(str(num))if __name__ == '__main__':app = QApplication(sys.argv)demo = InputdialogWidget()demo.show()sys.exit(app.exec_())

三、QFileDialog

  1. 文件夹
    dir_ = QFileDialog.getExistingDirectory(self, “选取文件夹”, “C:/”) # 起始路径

  2. 单文件
    设置文件扩展名过滤,注意用双分号间隔
    file_, filetype = QFileDialog.getOpenFileName(self, “选取文件”, “C:/”, “All Files ();;Text Files (.txt)”)

  3. 多文件
    files, ok = QFileDialog.getOpenFileNames(self, “多文件选择”, “C:/”, “All Files ();;Text Files (.txt)”)

  4. 保存
    file_, ok = QFileDialog.getSaveFileName(self, “文件保存”, “C:/”, “All Files ();;Text Files (.txt)”)

  5. 另存为
    file_, ok = QFileDialog.getSaveFileName(self, “文件另存为”, “C:/”, “All Files ();;Text Files (.txt)”)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/623656.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系

经常遇到很多系统,比如:MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM,这些都是什么系统?有什么功能和作用?它们之间的关系是怎样的? 今天就一文详细分享给大家。 10大系统之间的关系 ERP 和其他…

说说你对集合的理解?常见的操作有哪些?

一、是什么 集合(Set),指具有某种特定性质的事物的总体,里面的每一项内容称作元素 在数学中,我们经常会遇到集合的概念: 有限集合:例如一个班集所有的同学构成的集合无限集合:例如…

Mybatis-plus中的分页操作

Mybatis-plus中的分页操作 1.导入Mybatis-plus依赖2.创建mybatis配置类3.参数 1.导入Mybatis-plus依赖 因为是一个springboot项目&#xff0c;其中的pom.xml文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns&q…

【电力工程】电力大数据和云架构智能AI服务平台研发建设项目可行性研究报告范例

1、项目概况 本项目拟进行基于电力大数据和云架构的智能 AI 服务平台的研究,具体包括电力多元大数据中心、技术中台、数据中台和智能 AI 中台,基于电力大数据云平台基础构建 BI 可视化开发平台和智能 AI 服务平台。 该项目的实施旨在引领公司在大数据领域发展的新趋势,从功…

【C++初阶】C++简单入门(长期维护)

本篇博客是对C的一些简单知识分享&#xff0c;有需要借鉴即可。 C简单入门目录 一、C前言1.C的概念&#xff1a;2.C发展历程3.C如何学&#xff1f; 二、C入门1.C关键字(C98标准)2.命名空间3.C输入&输出①概念说明②使用说明③特征说明④细节拓展⑤cout与cin的意义 4.缺省参…

3D模型处理的并行化

今天我们将讨论如何使用 Python 多进程来处理大量3D数据。 我将讲述一些可能在手册中找到的一般信息&#xff0c;并分享我发现的一些小技巧&#xff0c;例如将 tqdm 与多处理 imap 结合使用以及并行处理存档。 那么我们为什么要诉诸并行计算呢&#xff1f; 使用数据有时会出现…

javaWeb项目-游泳馆管理系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、SSM框架 开发信息…

关于Qt主窗口的菜单部件

前言 在介绍主窗口的两大部件之前&#xff0c;我们要先知道关于主窗口的一些知识。 主窗口 一个主窗口可以没有菜单条、工具条、状态条&#xff0c;但必须设置中心部件。在 Q 生成的 C头文件 ui_mainwindow.h 代码中,我们可以看到以下代码: centralWidget new Qwidget(MainWi…

无效的标记: --release

maven编译项目时候出现&#xff1a;无效的标记: --release 项目背景 介绍一下项目背景&#xff1a; java17 SpringBoot&#xff1a;3.2.0 SpringCloud&#xff1a; 2023.0.0 之前一直用java8开发项目 问题原因 maven所使用的jdk版本和idea所使用的jdk版本不一致导致的。…

GitHub repository - commits - branches - releases - contributors

GitHub repository - commits - branches - releases - contributors 1. commits2. branches3. releases4. contributorsReferences 1. commits 在这里可以查看当前分支的提交历史。左侧的数字表示提交数。 2. branches 可以查看仓库的分支列表。左侧的数字表示当前拥有的分…

立迈胜NGM18系列一体化电动夹爪全新升级:高度集成、更大负载扭矩

随着工业自动化的不断发展和深入&#xff0c;电动夹爪作为工业自动化生产线上的重要部件&#xff0c;经常在汽车制造、食品加工、电子电器、物流和医疗等行业中看到它的身影&#xff0c;所以其性能直接关系到生产效率与产品质量。 在实际应用中&#xff0c;我们常会遇到很多问…

oracle 19c数据库W00n进程使用很多PGA内存资源的分析

今天&#xff0c;客户反馈测试环境的数据库PGA资源不足&#xff0c;报错ORA-04036: 实例使用的 PGA 内存超出 PGA_AGGREGATE_LIMIT&#xff1b;分析是多个W00n进程使用大量PGA-触发了BUG&#xff0c;对应解决办法就是打补丁。&#xff08;民间办法就是KILL进程、重启数据库&…