PythonPyQt5教程(一)实现简单的GUI界面
目录
一、前言:
- 是一个创建GUI应用程序的工具包。它是Qt C++跨平台应用程序框架和跨平台解释语言Python的结合而成,它是Python编程语言和Qt库的成功融合。
- Qt库是目前最强大的库之一。
- PyQt是由Phil Thompson 开发。 PyQt实现了一个Python模块集。它有超过300类,将近6000个函数和方法。
- 它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。
- PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。
PyQt5的安装
- 还没安装的小伙伴可以先安装一下哦:
- PyQt5在Mac下安装其实是非常简单的
安装准备
- 1、首先你先安装Home_brew_ * Terminal 内可以使用如下的简单的指令进行一键安装:
__
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
- 2、安装Python3.6
- Terminal 输入指令:
brew install python3
-
3、安装QT
-
建议直接去Qt官网下载安装
-
4、安装PyQt5
-
直接使用 brew 安装,
-
打开 Terminal ,输入如下指令:
brew install sip brew install pyqt
- 安装Pyqt5时间比较长,请耐心等待
__
对象介绍:
- 在学习PyQt5之前,我们先来了解两个对象
1、QApplication
描述:
- 每个GUI程序都必须有一个QApplication对象
- 创建时需要传递sys.argv,因为PyQt可以识别一些自己的参数,如-geometry和-style
功能:
- 该对象提供访问全局信息的能力,如目录,屏幕大小,事件循环等
2、QWidget
描述:
- QWidget类是所有用户界面对象的基类。
- 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。
二、GUI实战(实现简单的窗口界面)
-
代码如下:
import sys; from PyQt5.QtGui import *; from PyQt5.QtCore import *; from PyQt5.QtWidgets import *; if __name__ == '__main__': app = QApplication(sys.argv); w = QWidget(); w.resize(250, 150) w.move(300, 300) w.setWindowTitle('window title') w.show() sys.exit(app.exec_())
-
运行效果:
代码详解:
- 1、 app = QApplication(sys.argv);
- sys.argv 获得命令行携带的参数
-
每个GUI程序都必须有一个QApplication对象 # 创建时需要传递sys.argv,因为PyQt可以识别一些自己的参数,如-geometry和-style
-
2、 w = QWidget();
- 我们调用了QLabel的默认构造器。默认构造器没有parent参数。没有parent的控件称为窗体(window)。
- 3、 w.resize(250, 150)
- resize()方法用于设置控件的尺寸。它宽250px高150px
- 4、 w.move(300, 300)
- move()方法将控件移动到坐标为x=300, y=300的位置
- 5、 w.setWindowTitle(‘window title’)
- 设置窗口标题
- 6、w.show()
- 向QApplication事件列表中添加新的事件,以请求对特定的窗口部件进行绘制.
- 7、sys.exit(app.exec_())
- app.exec_();启动QApplication的事件循环,
- 使用exec_()而不使用exec()是为了与Python中的exec()区分。
- 调用sys.exit()是为了在窗口被关闭时,系统能得到通知
三、实战进阶(显示hello)
-
我们的窗口现在是空白一篇,我们也来个hello word吧,在窗口中间显示出来.
-
代码修改如下:
import sys; from PyQt5.QtGui import *; from PyQt5.QtCore import *; from PyQt5.QtWidgets import *; if __name__ == '__main__': app = QApplication(sys.argv); lable = QLabel(); lable.setText('Hello wold! I am 安杰小生。') lable.setAlignment(Qt.AlignCenter); lable.resize(250, 150) lable.move(300, 300) # 设置窗口标题 lable.setWindowTitle('window title') # 设置flags为闪屏模式可移除标题栏 lable.show() sys.exit(app.exec_())
-
运行结果如下:
四、总结
- 今天我们初步接触来GUI的相关知识,循序渐进,后面我们会不断学习更多有关PyQt的相关开发知识。