PyQt5入门,Python的GUI应用程序开发利器
Last Updated on 2024年1月11日 by hangzi
在众多的Python GUI库中,PyQt5无疑是其中的佼佼者。
通过简单的示例让大家快速上手PyQt5。
1、PyQt5介绍
PyQt5是一个用于创建图形用户界面(GUI)应用程序的Python库,它是基于Qt框架的。
PyQt5将Qt库的强大功能带到了Python编程语言中,使得开发者能够利用Python的简洁语法来构建美观且功能强大的GUI应用。
2、PyQt5的优势
(1)跨平台:PyQt5 支持多种操作系统,如 Windows、macOS、Linux 等。
(2)丰富的控件:PyQt5 提供了丰富的控件,如按钮、文本框、列表等,满足各种界面需求。
(3)信号与槽机制:PyQt5 通过信号与槽机制实现控件之间的通信,使得界面更新和事件处理更加高效。
(4)自定义样式:PyQt5 支持自定义样式,可以根据需求调整界面美观程度。
3、安装PyQt5
(1)创建python虚拟环境使用:python -m venv 虚拟环境名称
(2)激活并进入虚拟环境:
- 在MacOS或Linux系统下使用:
source 虚拟环境的名称/bin/activate
- 在windows系统下使用:
虚拟环境的名称/Scripts/activate
(3)在终端或命令提示符中输入以下命令即可安装PyQt5:
pip install pyqt5
4、PyQt5的使用
(1)简单的窗口,并写上Hello world
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
if __name__ == '__main__':
aap = QApplication(sys.argv)
w = QWidget()
w.setWindowTitle("简单的窗口")
w.setGeometry(150, 150, 300, 200) # 四个值分别是:x轴,y轴,宽,高
label = QLabel("Hello World", w) # 指定这个控件名称及父窗口
label.move(100, 80) # 修改控件位置,两值分别是:x轴,y轴,位置起点是父窗口的左上脚
w.show()
sys.exit(aap.exec_())
(2)创建窗口
在 PyQt5 中,创建窗口需要从 QMainWindow、QWidget
等类中派生一个类,并在其中定义窗口的布局和控件。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("创建窗口")
self.initUI()
def initUI(self):
self.centralWidget = QWidget(self)
self.setCentralWidget(self.centralWidget)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
注:QMainWindow与QWidget区别:QWidget是一个基本的窗口组件,不提供任何高级功能,如标题栏、菜单栏等;QMainWindow是QWidget子类,继承了QWidget的所有功能,还有自己的功能,提供了窗口的标题栏、菜单栏等高级功能。
(3)添加控件
在 PyQt5 中,可以通过 QVBoxLayout、QHBoxLayout
等布局类为窗口添加各种控件。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QLineEdit
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("创建窗口")
self.initUI()
def initUI(self):
self.centralWidget = QWidget(self)
self.setCentralWidget(self.centralWidget)
# 添加控件
self.layout = QVBoxLayout(self.centralWidget)
self.button = QPushButton("点我", self)
self.layout.addWidget(self.button)
self.lineEdit = QLineEdit(self)
self.layout.addWidget(self.lineEdit)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
(4)信号与槽
在 PyQt5 中,可以通过信号与槽机制实现控件之间的通信,使得界面更新和事件处理更加高效。
示例:实现按钮点击后,文本框显示"Hello, PyQt5!"
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QLineEdit
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("创建窗口")
self.initUI()
def initUI(self):
# 创建窗口
self.centralWidget = QWidget(self)
self.setCentralWidget(self.centralWidget)
# 添加控件
self.layout = QVBoxLayout(self.centralWidget)
self.button = QPushButton("点我", self)
self.layout.addWidget(self.button)
self.lineEdit = QLineEdit(self)
self.layout.addWidget(self.lineEdit)
# 给按钮增加事件
self.button.clicked.connect(self.onClicked)
def onClicked(self):
self.lineEdit.setText("Hello, PyQt5!")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
简单介绍了 PyQt5 的优势、安装方法、以及写一个Demo的窗口Hello World程序。
并通过简单的示例,展示了如何创建一个窗口、添加按钮和文本框控件,以及通过信号与槽机制实现按钮点击后文本框更新文本的功能。
关注微信公众号『编程与读书』
第一时间了解最新网络动态
关注博主不迷路~