第一课 python-GUI编程介绍环境搭建
tags:
- python
- 网易云课堂
categories:
- pyqt5
- pyqt5-tools
- QtDesiginer
文章目录
第一节 PyQt的介绍
1. Qt简介
- 使用C++语言编写的跨平台GUI库,支持Windows、Mac OSx和Linux。由于Qt使用C++语言编写,所以使用Qt开发的GUI程序的界面风格与当前操作系统完全相同,而且运行效率很高。
- GUI:带图形用户接口的程序,也就是我们经常说的桌面应用。
2. Qt历史
- Qt是挪威的一-家名为Trolltech (奇趣科技)的公司开发的-一个C++ GUI工具集,其中包括跨平台类库、集成开发工具和跨平台IDE,既可以用于开发GUI程序,也可以用于开发非GUI程序。使用Qt开发的代码只需要在不同的操作系统平台.上重新编译,就可以在该平台上运行。也就是说,用Qt开发的程序的跨平台模式是源代码级的。
- 2008年6月,Trolltech公 司被Nokia (诺基亚)收购,2012年8月,芬兰的Digia公司从Nokia收购了Qt业务.
- Qt跨平台的集成开发工具Qt Creator
3. PyQt简介
- PyQt是一个用于创建GUI应用程序的跨平台工具包,它将Python与Qt库融为一-体。
- 也就是说,PyQt允许使用Python语言调用Qt库中的APl。这样做的最大好处就是在保留了Qt高运行效率的同时,大大提高了开发效率。因为,使用Python语 言开发程序要比使用C++语言开发程序快得多。
- PyQt对Qt做了完整的封装,几乎可以用PyQt做Qt能做的任何事情。由于目前最新的PyQt版本是5.11,所以习惯上成为PyQt为PyQt5。
4. PyQt学习知识
- Qt Designer
- PyQt5基本窗口控件(QMainWindow、 Qwidget、 Qlabel、 QLineEdit、 菜单、工具栏等)
- PyQt5高级组件( QTableView、QListView、 容器、多线程等)
- PyQt5布局管理(QBoxLayout、 QGridLayout、 QFormLayout、 嵌套布局等)
- PyQt5信号与槽(事件处理、数据传递等)
- PyQt5图形与特效(定制窗口风格、绘图、QSS与UI美化、不规则窗口、设置样式等)
- PyQt5扩展应用(制作PyQt5安装程序、数据处理、第三方绘图库在PyQt5中的应用、UI自动化测试等)
第二节 PyQt的环境搭建
1. 虚拟环境的搭建
- 安装虚拟环境。 pip install virtualenvwrapper-win -i https://pypi.douban.com/simple/
- 安装pyqt5. pip install pyqt5 -i https://pypi.douban.com/simple/
- 安装pyqt5-tools pip install pyqt5-tools -i https://pypi.douban.com/simple/
2. Pycharm中配置QtDesiginer
- Setting中tool下的External tools
- Program: E:\PY_ENV\py3_pyqt5\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
- Working directory: $ProjectFileDir$
3. PyQt第一个桌面应用
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
import sys
#开发第-个基于PyQt5的桌面应用
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("第一个基于pyqt5的桌面应用")
window.resize(500, 500)
window.move(400, 200)
label = QLabel(window)
label.setText("Hello PyQt5")
label.move(200, 200)
window.show()
#进入程序的主循环、并通过exi t函数确保主循环安全结束
sys.exit(app.exec_())
4. 将.ui文件转换为.py文件
- 把当前面板保存成ui文件。
- 方法一python命令行:python -m PyQt5.uic.pyuic first.ui -o first.py
- 按照2.2中方法配置PyUIC。
- Program: E:\PY_ENV\py3_pyqt5\Scripts\python.exe
- Arguments: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
- Working directory: $FileDir$
- 方法二直接调用External tools下的 PyUIC
第三节 PyQt的常用语法
1. 获取期望尺寸
- 尺寸策略(sizePolicy) 、sizeHint (期望尺寸) 、最小期望尺寸
- 对于大多数控件来说,sizeHint的值是只读的
- 控件的宽度期望尺寸获取:sizeHint().width()
- 控件的高度期望尺寸获取:sizeHint().height()
- 控件的最小宽度期望尺寸获取:minimumsizeHint().width()
- 控件的最大高度期望尺寸获取:minimumsizeHint().height()
self.textEdit.setObjectName("textEdit")
# 期望尺寸
print(self.textEdit.sizeHint().width())
print(self.textEdit.sizeHint().height())
# 最小期望尺寸
print(self.textEdit.minimumsizeHint().width())
print(self.textEdit.minimumsizeHint().height())
2. 在Qt Designer中设置信号与槽
- 信号(signal)和槽(slot)是Qt的核心机制,也是PyQt的核心机制
- 信号:是由对象或控件发射出去的消息。
- 按钮的单击事件: 当单击按钮时,按钮就会向外部发送单击的消息,这些发送出去的信号需要一些代码来拦截,
- 这些代码就是槽槽本质.上是一个函数或方法