PyQt5的简介
PyQt5是一个跨平台的工具包,它可以运行UNIX,Windows,Mac OS系统中。PyQt5是双重许可。开发者可以在GPL和商业许可之间进行选择。同时其作为Python的一个模快,拥有620多个类和6000个函数和方法。
| 类 | 功能描述 |
|---|
| QtCore | 包含核心的非GUI功能。此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程。 |
| QtGui | 包含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本 |
| QtWidgets | 含创造经典桌面风格的用户界面提供了一套UI元素的类 |
| QtMultimedia | 包含的类来处理多媒体内容和API来访问相机和收音机的功能 |
| QtBluetooth | 包含类的扫描设备和连接并与他们互动。 |
| QtNetwork | 包含网络编程的类。这些类便于TCP和IP和UDP客户端和服务器的编码,使网络编程更容易和更便携 |
| QtPositioning | 包含类的利用各种可能的来源,确定位置,包括卫星、Wi-Fi、或一个文本文件 |
| Enginio | 实现了客户端库访问Qt云服务托管的应用程序运行时 |
| QtWebSockets | 包含实现WebSocket协议类 |
| QtWebKit | 包含一个基于Webkit2图书馆Web浏览器实现类 |
| QtWebKitWidgets | 包含的类的基础webkit1一用于qtwidgets应用Web浏览器的实现 |
| QtXml | 包含与XML文件的类。这个模块为SAX和DOM API提供了实现 |
| QtSvg | 提供了显示SVG文件内容的类。可伸缩矢量图形(SVG)是一种描述二维图形和图形应用的语言 |
| QtSql | 提供操作数据库的类 |
| QtTest | 提供pyqt5应用程序的单元测试 |
PyQt5组件的应用
- QLineEdit
| 方法 | 功能描述 |
|---|
| setAlignment() | 按固定值方式对齐文本 |
| setEchoMode() | 设置文本框的显示格式 |
| setPlaceholderText() | 设置文本框显示文字 |
| setMaxLength() | 设置文本框所允许输入的最大字符数 |
| setReadOnly() | 设置文本为只读 |
| setText() | 设置文本框的内容 |
| text() | 返回文本框的内容 |
| setDragEnable() | 设置文本框是否接受拖动 |
| selectAll() | 全选 |
| setFocus() | 得到焦点 |
| setInputMask() | 设置掩码 |
| setValidator() | 设置文本框的验证器(验证规则),将限制任意可能输入的文本 |
| 信号 | 功能描述 |
|---|
| selectionChanged | 只要选择改变了,这个信号就会发射 |
| textChanged | 当修改文本内容时,这个信号就会发射 |
| editingFinished | 当编辑文本结束时,这个信号就会发射 |
- Qlabel
| 方法 | 功能描述 |
|---|
| setAlignment() | 按固定值方式对齐文本 |
| serIndent() | 设置文本缩进值 |
| setPixmap() | 设置QLabel为一个Pixmap图片 |
| setText() | 设置Qlabel的内容 |
| text() | 返回Qlabel的内容 |
| selectedText()) | 返回所选择的字符 |
| setBuddy() | 设置QLabel的助记符及buddy(伙伴),及使用Qlabel设置快捷键,会在快捷键后将焦点设置到其buddy上,这里用到了Qlabel的交互控件功能 ,此外,buddy可以是任何一个widget控件,使用setBuddy(QWidget*)设置,其Qlabel必须是文本内容,并且使用“&”符号设置了助记符 |
| setWordWrap() | 设置是否允许换行 |
| 信号 | 功能描述 |
|---|
| linkActiveted | 当单击标签中的超链接,希望在新窗口打开这个超链接时,setOpenExternalLinks特性必须设置为True,即setOpenExternalLinks(True) |
| linkHovered | 当鼠标指针滑过标签中嵌入的超链接时,需要用槽函数与这个信号进行绑定 |
- QTextEdit
| 方法 | 功能描述 |
|---|
| setPlainText() | 设置多行文本框的内容 |
| toPlainText() | 返回多行文本框的文本内容 |
| setHtml() | 设置多行文本框的文本内容为HTML文档 |
| toHtml()) | 返回多行文本框的HTML内容 |
| clear() | 清除多行文本框的内容 |
- QAbstractButton
QAbstractButton类为抽象类,不能实例化,必须由其他的按钮类继承QAbstractButton类,来实现不同的功能和表现形式,常见的按钮QPushButton,QToolButton,QRadioButton和QCheckBox这些按钮均继承自QAbstractButton类,根据各自的使用场景通过图形显示出来
| QAbstractButton状态 | 含义描述 |
|---|
| isDown() | 提示按钮是否已按下 |
| isChecked() | 提示按钮是否已经标记 |
| isEnable() | 提示按钮是否可以被用户点击 |
| isCheckAble() | 提示按钮是否已经标记 |
| isChecked() | 提示按钮是否为可标记的 |
| setAutoRepeat() | 设置按钮是否在用户长按时可以自动重复执行 |
| QAbstractButton信号 | 功能描述 |
|---|
| Pressed | 当鼠标指针在按钮上并按下左键时触发该信号 |
| Released | 当鼠标左键被释放时触发该信号 |
| Clicked | 当鼠标指针在按钮上并按下左键时触发该信号 |
| Toggled | 当按钮的标记状态发生改变时触发该信号 |
| QPushButton方法 | 功能描述 |
|---|
| setCheckable() | 设置按钮是否已经被选中,如果设置True,则表示按钮将保持已点击和释放状态 |
| toggle() | 在按钮状态之间进行切换 |
| setIcon() | 设置按钮上的图标 |
| setEnabled() | 设置按钮是否可以使用,当设置为False时,按钮变成不可用状态,点击它不会发射信号 |
| isChecked() | 返回按钮的状态,返回值为True或者False |
| setDefault() | 设置按钮的默认状态 |
| setText() | 设置按钮的显示文本 |
| text() | 返回按钮的显示文本 |
| QRadioButton方法 | 功能描述 |
|---|
| setCheckable() | 设置按钮是否已经被选中,如果设置True,则表示按钮将保持已点击和释放状态 |
| isChecked() | 返回单选按钮的状态,返回值True或False |
| setText() | 设置单选按钮的显示文本 |
| text() | 返回单选按钮的显示文本 |
| QCheckBox方法 | 功能描述 |
|---|
| setChecked() | 设置复选框的状态,设置为True表示选中,False表示取消选中的复选框 |
| setText() | 设置复选框的显示文本 |
| text() | 返回复选框的显示文本 |
| isChecked() | 检查复选框是否被选中 |
| setTriState()) | 设置复选框为一个三态复选框 |
| setCheckState() | Qt.Checked[组件没有被选中(默认)];Qt.PartiallyChecked[组件被半选中];Qt.Unchecked[组件被选中] |
- QComboBox
| 方法 | 功能描述 |
|---|
| addItem() | 添加一个下拉选项 |
| addItems() | 从列表中添加下拉选项 |
| Clear() | 删除下拉选项集合中的所有选项 |
| count() | 返回下拉选项集合中的数目 |
| currentText() | 返回选中选项的文本 |
| itemText(i) | 获取索引为i的item的选项文本 |
| currentIndex() | 返回选中项的索引 |
| setItemText(int index,text) | 改变序列号为index的文本 |
| 信号 | 功能描述 |
|---|
| Activated | 当用户选中一个下拉选项时发射该信号 |
| currentIndexChanged | 当下拉选项的索引发生改变时发射该信号 |
| highlighted | 当选中一个已经选中的下拉选项时,发射该信号 |
- QSpinBox
| 方法 | 功能描述 |
|---|
| setMinimum() | 设置计数器的下界 |
| setMaximum() | 设置计数器的上界 |
| setRange() | 设置计数器的最大值,最小值,步长值 |
| setValue() | 设置计数器的当前值 |
| Value() | 返回计数器的当前值 |
| singleStep() | 设置计数器的步长值 |
- QSlider
| 方法 | 功能描述 |
|---|
| setMinimum() | 设置滑动条控件的下界 |
| setMaximum() | 设置滑动条控件的上界 |
| setValue() | 设置滑动条控件的当前值 |
| Value() | 获取滑动条控件的当前值 |
| singleStep() | 设置滑动条控件的步长值 |
| setTickInterval() | 设置刻度间隔 |
| setTickPosition() | 设置刻度标记的位置,可以输入一个枚举值,这个枚举值指定刻度线想当与滑块和用户操作的位置 |
| 信号 | 功能描述 |
|---|
| vlaueChanged | 当滑块的值发生改变时发射此信号,此信号是最常用的 |
| sliderPressed | 当用户按下滑块时发射此信号 |
| sliderMoved | 当用户拖动滑块时发射此信号 |
| slierReleased | 当用户释放滑块时发射此信号 |
- QDialog
QDialog类的子类主要有QMessageBox,QFileDialog,QColorDialog,QFontDialog,QInputDialog等。
| QDialog方法 | 功能描述 |
|---|
| setWindowTitle() | 设置对话框标题 |
| setWindowModality() | 设置窗口模态:Qt.NonModal(非模态);Qt.WindowModal(窗口模态);Qt.ApplicationModal(应用程序模态) |
| QMessageBox方法 | 功能描述 |
|---|
| information(QWdiget parent(指定的父窗口控件),title(对话框标题),text(对话框文本),buttons(多个标准按钮,默认为ok按钮),defaultButton(默认选中的标准按钮,默认选中第一个标准按钮) | 弹出消息对话框 |
| question(QWidget parent,title,text,buttons,defaultButton | 弹出问答对话框(各参数解释如上) |
| warning(QWidget parent,title,text,buttons,defaultButton | 弹出警告对话框(各参数解释如上) |
| critical(QWidget parent,title,text,buttons,defaultButton) | 弹出严重错误对话框 (各参数解释如上) |
| about(QWidget parent,title,text) | 弹出关于对话框(各参数解释如上) |
| setTitle() | 设置标题 |
| setText() | 设置正文消息 |
| setIcon() | 设置弹出对话框的图片 |
| QMessageBox类型 | 功能描述 |
|---|
| QMessage.Ok | 同意操作 |
| QMessage.Cancel | 取消操作 |
| QMessage.Yes | 同意操作 |
| QMessage.No | 取消操作 |
| QMessage.Abort | 终止操作 |
| QMessage.Retry | 重试操作 |
| QMessage.Ignore | 忽略操作 |
| QInputDialog方法 | 功能描述 |
|---|
| getint() | 从控件中获得标准整数输入 |
| getDouble() | 从控件中获得标准浮点数输入 |
| getText() | 从控件中获得标准字符串的输入 |
| getItem() | 从控件中获得列表里的选项输入 |
| QFontDialog方法 | 功能描述 |
|---|
| getFont() | 从字体选择对话框中选择文本的显示字号大小样式和格式 |
| QFileDialog方法 | 功能描述 |
|---|
| getOpenFileName() | 返回用户所选择文件的名称,并打开该文件 |
| getSaveFileName() | 使用用户选择的文件名保存文件 |
| setFileMode() | 可以选择的文件类型 |
| setFilter() | 设置过滤器,只显示过滤器允许的文件类型 |
- Qpainter
Qpainter类在QWidget(控件)上执性绘图操作,它是一个绘制工具,为大部分图形化界面提供了高度优化的函数,使QPainter类可以绘制从简单的直线到复杂的饼图等。
| 方法 | 功能描述 |
|---|
| begin() | 开始在目标设备上绘制 |
| drawArc() | 在起始角度和最终角度之间画弧 |
| drawEllipse() | 在一个矩形内画一个椭圆 |
| drawLine(int x1,int y1,int x2,int y2) | 绘制一条指定了端点坐标的线,绘制从(x1,y1)到(x2,y2)的直线并且设置当前地画笔位置为(x2,y2) |
| drawPixmap() | 从图像中提取Pixmap并将显示在指定位置 |
| drawPolygon() | 使用坐标数组绘制多边形 |
| drawRect(int x,int y,int w,int h) | 以给定的宽度w和高度h从左上角坐标(x,y)绘制一个矩形 |
| drawText() | 显示给定坐标处的文字 |
| fillRect() | 使用QColor参数填充矩形 |
| setBrush() | 设置画笔的风格 |
| setPen() | 设置用于绘制的笔的颜色,大小,样式 |
| 画笔风格(Penstyle)-枚举类型 | 功能描述 |
|---|
| Qt.Nopen | 没有线。比如QPainter.drawRect()填充,但没有绘制任何边界线 |
| Qt.SolidLine | 一条简单的线 |
| Qt.DashLine | 有一些像素分割的线 |
| Qt.DotLine | 有一些像素分割的点 |
| Qt.DashLine | 轮流交替的点和短线 |
| Qt.DashDotDotLine | 一条短线,两个点 |
| Qt.MpenStyle | 画笔风格的掩码 |
10.QPen
QPen(钢笔)是一个基本的图形对象,用于绘制直线,曲线或者给轮廓画出矩形,椭圆形,多边形及其他形状。
11.QBrush
QBrush(画刷)是一个基本的图形对象,用于填充如矩形,椭圆形,多边形等形状,QBrush有三种类型,预定义,过渡,和纹理图案。
12.QPixmap
QPixmap类用于绘图设备的图像显示,它可以作为一个QPainterDevice对象,也可以加载到一个控件中,通常是标签或者按钮,用于在标签或按钮上显示图像
QPixmap可以读取的图像文件类型有BMP,GIF,JPG等。
| 方法 | 功能描述 |
|---|
| copy() | 从QRect对象复制到QPixmap对象 |
| fromImage() | 将QImage对象转换为QPixmap对象 |
| grabWidget() | 从给定的一个窗口小控件创建一个像素图 |
| grabWindow() | 在窗口创建数据的像素图 |
| load() | 加载图像文件作为QPixmap对象 |
| save() | 将QPixmap对象保存为文件 |
| toImage() | 将QPixmap对象转换为QImage对象 |
13.Drag与Drop
基于MIME类型的拖曳数据传输是基于QDrag类的,QMimeData对象将关联的数据与其对应的MIME类型相关联。
MIME类型的数据可以简单的理解为互联网上的各种资源,比如文本,音频和图片等资源,互联网上的每一种资源都属于一种MIME类型的数据。
MimeData类函数允许检测和使用方便的MIME类型如下:

| 事件 | 功能描述 |
|---|
| DragEnterEvent | 当执行一个拖曳控件操作,并且鼠标指针进入该控件时,这个事件将会被触发。在这个事件中可以获得被操作的窗口控件,还可以有条件地接受或拒绝该拖曳操作 |
| DragMoveEvent | 在拖曳操作进行时会触发该事件 |
| DragLeaveEvent | 当执行一个拖曳操作,并且鼠标指针离开该控件时,这个事件被触发 |
| DropEvent | 当拖曳操作在其目标控件上被释放时,这个事件将被触发 |