【pyqt5学习】——对话框QDialog学习(QMessageBox、QColorDialog、QFIleDialog、QFontDialog、QInputDialog)

目录

1、对话框QDialog类别

2、通用对话框

 ​编辑

3、消息对话框QMessageBox() 

1)消息对话框QMessageBox类型

2)案例

 ​编辑

 4、输入对话框QInputDialog

1) 类型

 2)案例

5、字体格式对话框QFontDialog

 6、颜色对话框QColorDialog

1)获取颜色

2)利用颜色对话框修改字体颜色和背景色

①字体颜色设置

 ②字体背景色设置

③完整代码

注意:这种方法背景色和字体颜色无法同时修改 

7、文件对话框

1)选择指定后缀名的文件

方法一

 方法二

2)打开一个文件夹

3)利用QFileDialog实现图片选择和文件加载


1、对话框QDialog类别

QMessage——信息提示框

QColorDialog——颜色对话框

QFIleDialog——文件操作对话框

QFontDialog——字体格式对话框

QInputDialog——输入对话框

2、通用对话框

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/5/25 18:16
# @Author  : @linlianqin
# @Site    : 
# @File    : QDialog_learn.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys## 通用对话框
class QDialogDemo(QMainWindow):def __init__(self):super(QDialogDemo, self).__init__()self.InitUI()def InitUI(self):self.resize(300,100)self.setWindowTitle("Qdialog Demo")self.btn1 = QPushButton("弹出对话框",self)self.btn1.move(50,50)# 点击按钮弹出对话框self.btn1.clicked.connect(self.showDialog)# 创建对话框,点击按钮关闭def showDialog(self):dialog = QDialog()dialog.resize(200,100)dialog.setWindowTitle("对话框")btn = QPushButton("关闭",dialog) # 在dialog中创建按钮btn.move(50,50)btn.clicked.connect(dialog.close)# 将对话框设置为APP模式,即对话框未关闭时,没有办法对主窗口的控件进行操作# 进入app循环dialog.exec()if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QDialogDemo()mainWin.show()sys.exit(app.exec_())

 

 注:

1)当有多个窗口时,并且在不同的窗口创建控件时,需要指明其父类是谁

self.btn1 = QPushButton("弹出对话框",self)
btn = QPushButton("关闭",dialog) # 在dialog中创建按钮

2)创建一个新的对话框窗口时,不要忘记加上exec(),进入循环

dialog.exec()

3、消息对话框QMessageBox() 

1)消息对话框QMessageBox类型

关于对话框——about

错误对话框——critical

警告对话框——warning

提问对话框——question

消息对话框——information

注:上述几种不同的消息对话框主要是显示的按钮不一样,且图标不一样

2)案例

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/5/25 18:30
# @Author  : @linlianqin
# @Site    : 
# @File    : QMessageBox_learn.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys## 通用对话框
class QMessageBoxDemo(QWidget):def __init__(self):super(QMessageBoxDemo, self).__init__()self.InitUI()def InitUI(self):self.resize(300,100)self.setWindowTitle("Qdialog Demo")layout = QVBoxLayout()self.btn1 = QPushButton("关于对话框")self.btn2 = QPushButton("错误对话框")self.btn3 = QPushButton("警告对话框")self.btn4 = QPushButton("消息对话框")self.btn5 = QPushButton("提问对话框")layout.addWidget(self.btn1)layout.addWidget(self.btn2)layout.addWidget(self.btn3)layout.addWidget(self.btn4)layout.addWidget(self.btn5)# 点击按钮弹出对话框self.btn1.clicked.connect(self.showDialog)self.btn2.clicked.connect(self.showDialog)self.btn3.clicked.connect(self.showDialog)self.btn4.clicked.connect(self.showDialog)self.btn5.clicked.connect(self.showDialog)self.setLayout(layout)# 创建对话框,点击按钮关闭def showDialog(self):text = self.sender().text()if text == "关于对话框":QMessageBox.about(self,"关于","关于对话框")elif text == "错误对话框":QMessageBox.critical(self,"错误","错误对话框")if text == "警告对话框":QMessageBox.warning(self,"关于","关于对话框")if text == "消息对话框":QMessageBox.information(self,"消息","消息对话框")if text == "提问对话框":QMessageBox.question(self,"提问","提问对话框")# 消息对话框
if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QMessageBoxDemo()mainWin.show()sys.exit(app.exec_())

 

 

 4、输入对话框QInputDialog

1) 类型

QInputDialog.getItem——传入列表或者元组

QInputDialog.getText——录入文本

QInputDialog.getInt——录入整数

 2)案例

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/5/25 18:47
# @Author  : @linlianqin
# @Site    : 
# @File    : QInputDialog_learn.py
# @Software: PyCharm
# @description:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys## 输入对话框
class QInputDialogDemo(QWidget):def __init__(self):super(QInputDialogDemo, self).__init__()self.InitUI()def InitUI(self):self.resize(300,100)self.setWindowTitle("Qdialog Demo")layout = QFormLayout()self.btn1 = QPushButton("获取列表中的选项")self.btn1.clicked.connect(self.getItem)self.line1 = QLineEdit()layout.addRow(self.btn1,self.line1)self.btn2 = QPushButton("获取字符串")self.btn2.clicked.connect(self.getText)self.line2 = QLineEdit()layout.addRow(self.btn2,self.line2)self.btn3 = QPushButton("获取整数")self.btn3.clicked.connect(self.getInt)self.line3 = QLineEdit()layout.addRow(self.btn3,self.line3)self.setLayout(layout)def getItem(self):items = ["C","C++","Python"]item,ok = QInputDialog.getItem(self,"请选择编程语言","语言列表",items)if ok and item:self.line1.setText(item)def getText(self):text,ok = QInputDialog.getText(self,"文本输入框","输入姓名")if ok and text:self.line2.setText(text)def getInt(self):num,ok = QInputDialog.getInt(self,"整数输入框","输入年龄")if ok and num:self.line3.setText(str(num))if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QInputDialogDemo()mainWin.show()sys.exit(app.exec_())

 

 

5、字体格式对话框QFontDialog

通过这个对话框可以设置字体类型、字体大小,返回的是一个元组,元组包含字体格式和一个bool类型

font,ok = QFontDialog.getFont()

font,ok = QFontDialog.getFont()

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/5/26 10:14
# @Author  : @linlianqin
# @Site    : 
# @File    : QFontDialog_learn.py
# @Software: PyCharm
# @description:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys## 字体格式对话框
class QFontDialogDemo(QWidget):def __init__(self):super(QFontDialogDemo, self).__init__()self.InitUI()def InitUI(self):self.resize(300,100)self.setWindowTitle("QFontDialog Demo")layout = QVBoxLayout()self.btn1 = QPushButton("字体格式")self.label = QLabel("字体格式测试样例")self.btn1.clicked.connect(self.changeFont)layout.addWidget(self.btn1)layout.addWidget(self.label)self.setLayout(layout)def changeFont(self):font,ok = QFontDialog.getFont()if ok:self.label.setFont(font)if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QFontDialogDemo()mainWin.show()sys.exit(app.exec_())

 

修改字体格式后:

 

 6、颜色对话框QColorDialog

1)获取颜色

foreColor = QColorDialog.getColor()

返回QColor类

2)利用颜色对话框修改字体颜色和背景色

①字体颜色设置

	def setForeColor(self):# 通过颜色对话框得到颜色foreColor = QColorDialog.getColor()# 设置文字颜色p = QPalette()p.setColor(QPalette.WindowText,foreColor)self.label.setPalette(p)

 ②字体背景色设置

	def setBgColor(self):# 设置背景色bgColor = QColorDialog.getColor()p = QPalette()p.setColor(QPalette.Window,bgColor)self.label.setAutoFillBackground(True)self.label.setPalette(p)

③完整代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/5/26 10:23
# @Author  : @linlianqin
# @Site    : 
# @File    : QColorDialog_learn.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys## 颜色对话框
class QColorDialogDemo(QWidget):def __init__(self):super(QColorDialogDemo, self).__init__()self.InitUI()def InitUI(self):self.resize(300,100)self.setWindowTitle("QColorDialog Demo")layout = QVBoxLayout()self.btn1 = QPushButton("设置字体颜色")self.btn2 = QPushButton("设置背景色")self.label = QLabel("颜色对话框测试")self.btn1.clicked.connect(self.setForeColor)self.btn2.clicked.connect(self.setBgColor)layout.addWidget(self.btn1)layout.addWidget(self.btn2)layout.addWidget(self.label)self.setLayout(layout)def setForeColor(self):# 通过颜色对话框得到颜色foreColor = QColorDialog.getColor()# 设置文字颜色p = QPalette()p.setColor(QPalette.WindowText,foreColor)self.label.setPalette(p)def setBgColor(self):# 设置背景色bgColor = QColorDialog.getColor()p = QPalette()p.setColor(QPalette.Window,bgColor)self.label.setAutoFillBackground(True)self.label.setPalette(p)if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QColorDialogDemo()mainWin.show()sys.exit(app.exec_())

 

设置字体颜色

 

 设置背景色

注意:这种方法背景色和字体颜色无法同时修改 

7、文件对话框

PyQt5之QFileDialog_Anony吧的博客-CSDN博客_pyqt5 qfiledialogPyQt5之QFileDialogQFileDialog是用于打开和保存文件的标准对话框,QFileDialog在打开文件时使用了文件过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。一、QFileDialog类中的常用方法方法描述getOpenFileName()返回用户所选择的文件名称,并打开该文件getSaveFileName()使用用户选择的文件名保存文件setFilter()设置过滤器,只显https://blog.csdn.net/qq_44880255/article/details/106979791 

QFileDialog是用于打开和保存文件的标准对话框,QFileDialog在打开文件时使用了文件过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。 

 

 

# 选择后缀名为,jpg和.png的图片文件,并显示在label中
frame,_ = QFileDialog.getOpenFileName(self,"打开文件",".","Image files (*.jpg;*.png)")

1)选择指定后缀名的文件

方法一

	def loadImage(self):# 选择后缀名为,jpg和.png的图片文件,并显示在label中frame,_ = QFileDialog.getOpenFileName(self,"打开文件",".","Image files (*.jpg;*.png)")print(frame)self.imageLabel.setPixmap(QPixmap(frame))

 方法二

	def loadText(self):dialog = QFileDialog()dialog.setFileMode(QFileDialog.AnyFile)dialog.setFilter(QDir.Files)if dialog.exec():filenames = dialog.selectedFiles()print(filenames)with open(filenames[0],encoding = "utf-8",mode='r') as f:data = f.read()self.contents.setText(data)

2)打开一个文件夹

	def openDir(self):fname = QFileDialog.getExistingDirectory(self,"打开文件夹",".")self.DirLabel.setText("选择文件夹:"+fname)

3)利用QFileDialog实现图片选择和文件加载

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/5/26 10:57
# @Author  : @linlianqin
# @Site    : 
# @File    : QFileDialog_learn.py
# @Software: PyCharm
# @description:# 文件对话框
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sysclass QFileDialogDemo(QWidget):def __init__(self):super(QFileDialogDemo, self).__init__()self.InitUI()def InitUI(self):# self.resize(300)self.setWindowTitle("QFileDialog Demo")layout = QVBoxLayout()self.btn1 = QPushButton("加载图片")self.btn1.clicked.connect(self.loadImage)layout.addWidget(self.btn1)self.btn2 = QPushButton("加载文本")self.btn2.clicked.connect(self.loadText)layout.addWidget(self.btn2)self.btn3 = QPushButton("选择文件夹")self.btn3.clicked.connect(self.openDir)layout.addWidget(self.btn3)self.DirLabel = QLabel("文件夹名称")layout.addWidget(self.DirLabel)self.imageLabel = QLabel("----------")layout.addWidget(self.imageLabel)self.contents = QTextEdit()layout.addWidget(self.contents)self.setLayout(layout)def loadImage(self):# 选择后缀名为,jpg和.png的图片文件,并显示在label中frame,_ = QFileDialog.getOpenFileName(self,"打开文件",".","Image files (*.jpg;*.png)")print(frame)self.imageLabel.setPixmap(QPixmap(frame))def loadText(self):dialog = QFileDialog()dialog.setFileMode(QFileDialog.AnyFile)dialog.setFilter(QDir.Files)if dialog.exec():filenames = dialog.selectedFiles()print(filenames)with open(filenames[0],encoding = "utf-8",mode='r') as f:data = f.read()self.contents.setText(data)def openDir(self):fname = QFileDialog.getExistingDirectory(self,"打开文件夹",".")self.DirLabel.setText("选择文件夹:"+fname)if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QFileDialogDemo()mainWin.show()sys.exit(app.exec_())

初始界面:

 选择图像对话框:

选择文本对话框

选择文件夹对话框:

 

 

 结果

 

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

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

相关文章

使用 Mesos 管理虚拟机

摘要 为了满足渲染、基因测序等计算密集型服务的需求,UCloud 推出了“计算工厂”产品,让用户可以快速创建大量的计算资源(虚拟机)。该产品的背后,是一套基于 Mesos 的计算资源管理系统。本文简要介绍该系统的结构、Mes…

Val编程-套接字

套接字的介绍:http://zh.wikipedia.org/wiki/Berkeley%E5%A5%97%E6%8E%A5%E5%AD%97 主要分为客户端和服务器。客户端一般是需要主动去链接,需要配置服务器的IP和端口。服务器是被动响应,需要打开相应的端口。端口一般不推荐使用系统端口和常用…

【pyqt5学习】——Qpainter控件学习(文本、图像、各种图形)

目录 1、作用及应用步骤 2、绘制文本drawText() 3、像素级别绘制点(正弦曲线为例) 4、绘制不同样式的直线 5、绘制弧形、圆形、扇形、图像等 6、画刷填充区域QBrush 1、作用及应用步骤 QPainter是一个用于绘制的类,该类可以用于绘制&…

反向代理与Real-IP和X-Forwarded-For(转)

如下图所示,客户端通过Nginx Proxy1 和 Nginx Proxy2 两层反向代理才访问到具体服务Nginx Backend(或如Tomcat服务)。那Nginx Backend如何才能拿到真实客户端IP呢? 接下来我们来看看如何才能获取到客户端真实IP。 场景1  场景1是…

Android studio打开之后 cannot load project: java.lang.NUllpointerException

参考来源:http://bbs.csdn.net/topics/391014393 关闭网络,重新打开Android studio就好了。(但是原因不清楚是为什么?) Internal error. Please report to http://code.google.com/p/android/issuescom.intellij.ide.p…

Val编程-任务编程

不同任务之间可以通过一个标志符来实现互斥事件。 程序代码&#xff1a; Task2 <span style"font-size:12px;">beginwhile truewait(bTaskFlag)cls()gotoxy(1,1)put("这是Task2")gotoxy(1,2)if bTaskFlagput("BFlag:true ")elseput(&…

【pyqt5学习】——拖拽功能(DragDrop)、剪切板(QApplication.clipboard)

目录 1、拖拽功能&#xff08;Drag&Drop&#xff09; 2、剪切板&#xff08;QApplication.clipboard&#xff09; 1、拖拽功能&#xff08;Drag&Drop&#xff09; 选择文本输入框中的文本&#xff0c;移动到下拉框中自动添加步骤&#xff1a; 1、将文本输入框设置为可…

Val编程-特殊函数使用

Waitendmove()和$Waitendmove()使用心得 这是两个部分&#xff0c;程序运行部分和运动堆栈部分&#xff0c;waitendmove是两个部分进行交互的一个函数。 一般情况下waitendmove()速度会降到0&#xff0c;相当于blend等于off. 代码&#xff1a; begincls()userPage()title("…

【pyqt5学习】——QDateTimeEdit控件学习

目录 1、同时显示日期时间QDateTime 2、只显示日期QDate 3、只显示时间QTime 4、设置显示的格式setDisplayFormat 5、 QDateTimeEdit常用信号 6、实例 1、同时显示日期时间QDateTime # 同时显示日期时间dateTimeEdit1 QDateTimeEdit()dateTimeEdit2 QDateTimeEdit(QDat…

复选框做成单选效果

function zlClick($id){ var eles document.getElementById($id).children; var srcEle event.srcElement; for(var i0;i<eles.length;i){ if(srcEle.checked){ if(eles[i].value!srcEle.value){ eles[i].checkedfalse; } } } } 技术领域可信计算 其他 申请日 200020012…

013. MVC5过滤器

微软提供了4中过滤器: 1.Action过滤器: 在Action方法执行之前和Action方法执行之后, 会执行此过滤器中的代码. 比如在执行public ActionResult Index()方法之前或之后; 也可以说是在方法执行前或执行后; 接口: IactionFilter 抽象类名: ActionFilterAttribute 添加一个实现…

Val编程-读取汉字

Val编程-读取汉字 Val编程中&#xff0c;对于汉字的读取不是很友好&#xff0c;利用fileget直接读取记事本产生的文件字符串会导致乱码的产生。因为Val只支持使用utf-8进行编码&#xff0c;因此读取的文本需要进行utf-8格式转换。 在GBK中&#xff0c;汉字占两个字节。并且…

【pyqt5学习】——菜单栏(QMenu())、工具栏QToolBar学习

目录 1、菜单栏&#xff08;QMenu()&#xff09;——一般在窗口顶部 1&#xff09;创建菜单栏步骤 2&#xff09;信号与方法 3&#xff09;实操 2、工具栏——一般在菜单栏下方 1&#xff09;创建步骤 2&#xff09;方法与信号 信号&#xff1a; 方法&#xff1a; 3&am…

【pyqt5学习】——利用Pyqt5连接打印机(QtPrintSupport、QPrintDialog、QPageSetupDialog)

目录 1、利用QtPrintSupport直接连接打印机——不常用 1&#xff09;基本知识 2&#xff09;完整代码案例 3&#xff09;结果 2、 打印对话框QPrintDialog、打印设置对话框QPageSetupDialog 1&#xff09;弹出打印设置对话框 2&#xff09;弹出打印对话框 注&#xff1a…

Exchange Server 2016管理系列课件39.新建本地移动请求

场景通过新建本地移动请求&#xff0c;可以很方便的将用户邮箱从一个数据库迁移到另外一个数据库。1&#xff09;跨平台邮件迁移&#xff1b;&#xff08;低exchange迁移到高版本exchange&#xff09;2&#xff09;数据库平衡与优化&#xff1b;&#xff08;企业当中&#xff0…

【数据库学习】——【汇总】MySQL数据库下载与安装(Msi文件安装和免安装版本)、Navicat下载与安装

目录 1、MySQL数据库下载与安装 1&#xff09;MySQL数据库下载 MySQL官网 MySQL数据库下载 2&#xff09;MySQL 通过msi文件安装 3&#xff09;MySQL免安装版本使用 1&#xff09;将免安装包移动到安装的文件夹位置&#xff1b; 2&#xff09;新建data文件夹 3&#xff…

【数据库学习】——纠错:mysql Authentication plugin ‘caching_sha2_password‘ is not supported

目录 1、环境介绍 2、问题描述 3、原因分析 4、 解决方案 1&#xff09;方法一&#xff1a;直接改成mysql_native_password验证方式 2&#xff09;方案二&#xff1a; 利用sql命令将验证机制修改 ① 打开命令行窗口——cmd ② 登录mysql数据库 ③ 查看不同用户名的身份…

xcode中用pods管理第三方库转

安装pods &#xff1a;http://www.cnblogs.com/wangluochong/p/5567082.html 史上最详细的CocoaPods安装教程 --------------------------------------------- 第一步&#xff1a;Cmmand&#xff0b;空格&#xff0c;搜索"终端"&#xff0c;使用cd命令进入到我们项目…

Val编程-界面编程

由于示教盒是一个黑白的分辨率为&#xff08;14*40&#xff09;的液晶屏&#xff0c;用户交互不是很好&#xff0c;界面不友好。而且没有鼠标导航与触摸屏。 界面编程函数 1.void cls() 2.void title(string sText) 3.void put(string sText), void put(num nValue) 4.void put…

【机器学习笔记四】分类算法 - 逻辑回归

参考资料 【1】 Spark MLlib 机器学习实践 【2】 统计学习方法 1、Logistic分布 设X是连续随机变量&#xff0c;X服从Logistic分布是指X具有下列分布函数和密度函数 &#xff0c;。其中u为位置参数&#xff0c;γ为形状参数。如下图&#xff1a; 分布函数以(u,1/2)为中心…