弹出框是一个常用类别,相对比较简单不复杂,但由于种类多,功能多,不易记忆。由于知识浩如烟海,其实做为全栈类程序开发,一个重要原则就是,能查到的东西就不要去记忆,只需掌握其核心逻辑与开发方法即可。本文收集整理了一些弹出框的编程方法,供使用时查阅。
一、QMessageBox的类型
QMessageBox有四种类型:information、question、warning和critical。下面我们将分别介绍这四种类型的使用。
1. information类型
information类型的QMessageBox显示一个信息框,它通常用来提醒用户一些详细但不关键的信息。我们可以在标题和内容之间添加一个图标或在右上角添加一个帮助按钮。代码如下:
2. question类型
question类型的QMessageBox通常用来显示一些需要用户回答“是”或“否”的问题。它可以有默认按钮和一些可选按钮,例如‘Yes’、‘No’、‘Cancel’和‘Help’等。如果你嵌入到应用程序的窗口中,它还可以显示一个缩小、关闭和拓展按钮,代码如下:
3. warning类型
warning类型的QMessageBox通常用来警告用户可能会影响程序使用的一些操作或过程。例如,它在一些需要警告的代码中经常被使用。代码如下:
4. critical类型
critical类型的QMessageBox在某些错误情况下被使用,例如程序崩溃、网络断开等。它是一种需要注意并进行处理的警告类型。代码如下:
二、QInputDialog – 弹出式输入对话框
1.输入文本
# 第三个参数表示显示类型,可选,有正常(QLineEdit.Normal)、密碼( QLineEdit. Password)、不显示( QLineEdit. NoEcho)三种情况
value, ok = QInputDialog.getText(self, "输入框标题", "这是提示信息\n\n请输入文本:", QLineEdit.Normal, "这是默认值")
2.输入多行文本
value, ok = QInputDialog.getMultiLineText(self, "输入框标题", "这是提示信息\n\n请输入地址:", "默认的\n地址是\n中国北京东城区")
3. 输入整数
# 后面四个数字的作用依次是 初始值 最小值 最大值 步幅
value, ok = QInputDialog.getInt(self, "输入框标题", "这是提示信息\n\n请输入整数:", 22, -10000, 10000, 2)
4. 输入小数
# 后面四个数字的作用依次是 初始值 最小值 最大值 小数点后位数
value, ok = QInputDialog.getDouble(self, "输入框标题", "这是提示信息\n\n请输入整数:", 37.56, -10000, 10000, 2)
5.输入选项
# 1为默认选中选项目,True/False 列表框是否可编辑。
items = ["Spring", "Summer", "Fall", "Winter"]
value, ok = QInputDialog.getItem(self, "输入框标题", "这是提示信息\n\n请选择季节:", items, 1, True)
注意
输入后有两个选项,点击OK则代码中value为输入内容,ok为True;点击Cancel则value为空,ok为False。
三、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)")
保存为txt类型,file_ 返回文件保存路径。
这个和 保存 没有实质区别,只是提示您可以再存一个备份,点击完另存为后,再编辑相关文档,就是另存为后的文件了,这个和其他的一致,注意区分编辑文件的不同。