Python QT5 1- 启动PyQt5
Posted Rolei_zl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python QT5 1- 启动PyQt5相关的知识,希望对你有一定的参考价值。
1. 配置Python环境
1)下载Python,Welcome to Python.orgDownload Python | Python.orgWelcome to Python.org
2)下载Windows版本 Windows installer(64-bit),python-3.X.X.exe
Download Python | Python.org
3)安装Python,双击python安装程序,按提示执行安装
4)安装结果验证
python -V # Python 3.9.1
或
python # Python 3.9.1
2. 安装PyQt5
使用pip安装PyQt5及相关插件
# 安装 PyQt5
pip install PyQt5
# 验证 pyqt5 安装结果
>>> import PyQt5 # 导入PyQt5成功
# 安装 pyqt5 设计工具 designer
pip install pyqt5-tools
# 验证 pyqt5-tools 安装结果
python_path\\Lib\\site-packages\\qt5_applications\\Qt\\bin\\designer.exe #双击后启动Qt Designer
3. 配置PyCharm集成开发环境(IDE)
* 完全可以使用Python IDLE环境,使用PyCharm只是之前配置好的环境,并且希望使用下external tools,外部工具配置
1)PyCharm安装(参考官方文档,PyCharm中文网,JetBrains: Essential tools for software developers and teams 官网官网,似乎访问不到)
2)配置external tools
> File -> Settings
> 配置 external tools
> 配置 Qt Designer ( + ),执行Qt Designer进行GUI设计
- 设置 Name 和 Program 执行程序
- $FileDir$,在当前文件夹下生成 *.ui 文件
> 配置 pyuic5 ( + ),将 Qt Designer生成的*.ui文件转成*.py文件
- 设置 Name 和 Program 执行程序(pyuic5.ext 位于python目录的scripts文件夹下)
- 设置 Parameters参数,参考pyuic5执行: pyuic5 *.ui -o *.py, *代表对应的文件名
默认新的Qt Designer会引用 PySide2 库,因此直接使用pyuic5转换*.ui只能引用PySider2库,因此使用-o参数可以引用PyQt5库。
> 配置 Python ( + ),执行python程序
参考 python *.py 执行过程
- 设置 Name 和 Program 执行程序
- 设置 Parameters参数,指定当前运行的文件 $FileName$,即*.py
- 设置当前程序执行的文件夹,$FileDir$
4. 使用Qt Designer设计用户界面(详细参考相关帮助,)
有GUI设计 或 可视化快速开发语言经验的,可略过。了解一些Qt Designer的基本特性
1)信号 和 槽(Singnal and Slot)
> 信号和槽用于对象之间的通信,所有的应用都是事件驱动的,设用exec_()方法。
基于对象1的操作影响对象2:对像1发送信号,对像2响应信号称为槽;发送 - 信号 <-> 响应 - 槽
> 事件模型
事件源:发生了状态改变的对像
事件:改变的内容,用来描述一系列事件自身属性的对象,发生一个signal
事件目标:事件想作用的目标,事件触发时调用slot
> singal 信号,sender 信号的发送者,receiver 信号的接收者,slot 信号发出后应做出的反应
## import
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication,QMessageBox,QDialog
## Window UI design
-----------------------------------------------------------------
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(170, 120, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton.clicked.connect(self.showok)
def showok(self):
QMessageBox.information(self, 'Info', 'OK!!!')
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.buttonBox.accepted.connect(Dialog.accept)
def accept(self):
QMessageBox.information(self, 'Info', 'accepted!!!')
## Show Window
-----------------------------------------------------------------
class MyWindow(QDialog, Ui_Dialog):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
myWin = MyWindow()
myWin.show()
sys.exit(app.exec_())
2)Layout 布局
> Vertical Layout,竖向排列
> Horizontal Layout,横向排列
> Grid Layout,网格布局,多行多列
> Form Layout,表单布局,多行2列
布局创建步骤
> 创建组件(widget)
> 创建布局(layout),并将部件依次添加到布局中 -- 选择要布局的组件,然后选择合适的布局
- Getting started with PyQt -- Getting started with PyQt (learning the basics) - CodersLegacy
- PyQt5中文教程
以上是关于Python QT5 1- 启动PyQt5的主要内容,如果未能解决你的问题,请参考以下文章
Qt5 / PyQt5 : 带有 QML 前端和 Python 后端的自定义 QML 组件