当前位置:网站首页>PyQt5:入门使用教程
PyQt5:入门使用教程
2022-08-09 22:04:00 【pomelo33】
所需环境
- Windows / linux
- python3
- PyQt
安装PyQt5
下面直接使用pip来安装PyQt5,此处可能是pip/pip3,或者两者皆可,后面不再重复
直接pip安装PyQt5
pip install PyQt5由于Qt Designer已经在Python3.5版本从PyQt5转移到了tools,因此我们还需要安装pyqt5-tools
pip install pyqt5-tools到这一步,PyQt5就安装完成了,你可以通过下面若干可选的操作来检查是否已经安装成功:
正在上传…重新上传取消
- Win+S呼出主面板,输入designer,如果看到跟下图类似的结果说明PyQt Designer已经被安装
- 在cmd中输入pyuic5,如果返回“Error: one input ui-file must be specified”说明安装成功。
使用PyQt5
新建项目
Win+S呼出主面板,输入designer,点击打开。
正在上传…重新上传取消
会弹出以上窗口,可以打开之前编辑过的.ui文件,也可以点击创建一个Main Window。创建好后可以看到如下所示画面
正在上传…重新上传取消
- 左侧的“Widget Box”就是各种可以自由拖动的组件
- 中间的“MainWindow - untitled”窗体就是画布
- 右上方的"对象查看器"可以查看当前ui的结构
- 右侧中部的"属性编辑器"可以设置当前选中组件的属性
- 右下方的"资源浏览器"可以添加各种素材,比如图片,背景等等,目前可以不管
添加组件
可以通过拖动左侧的工具到当前画布上,例如我这里选择了几个Push Button以及一个textBrowser。
设计好基本的布局之后,点击左上角文件->另存为,可以生成.ui的文件。建议可以保存到后续需要调用代码的文件夹里。
生成.py文件
cd到.ui文件所在的文件夹,打开cmd,输入以下指令生成如下所示.py文件。
pyuic5 -o name.py name.ui运行.py文件
生成的py文件是无法直接运行的,我们可以在我们的main文件中写入以下代码,当运行main文件时,我们设计好的ui就会被展示出来。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
import gui_file_name
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = gui_file_name.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_()配置组件接口
ui展示出来了,但上面的按钮按动后都还是没有反应的。因此现在需要配置一下,设置按钮触发后的动作。
我们需要先在头文件中导入partial
from functools import partialpartial的用法如下所示:
partial(function, arg1, arg2, ......)在MainWindow.show()后面增加以下代码:
ui.pushButton.clicked.connect(partial(process, arg1, arg2))其中process是为你希望这个按钮调用的函数,arg1、arg2为函数传入的形参。
再次运行main.py,点击按钮,对应的函数就会执行。这时如果想将打印到控制台的输出显示到添加到textBrowser中,可以添加以下函数:
def print_qt(mes):
ui.textBrowser.append(mes) # 在指定的区域显示提示信息
ui.cursot = ui.textBrowser.textCursor()
ui.textBrowser.moveCursor(ui.cursot.End)
QApplication.processEvents()替换函数中的print即可。效果展示:
至此,PyQt5大致的操作已经展示完毕。当然其中还包含有很多组件,具体使用方式可以查阅官方文档:QtGui Module | Qt 4.8
边栏推荐
猜你喜欢
随机推荐
金山云地震,震源在字节?
DXF笔记:文字对齐的研究
【微信小程序开发(八)】音频背景音乐播放问题汇总
navicat 快捷键
Let's talk about what DDL, DML, DQL and DCL are in SQL statements
C. Binary String Reconstruction
A. Common Prefixes
请讲一讲JS中的 for...in 与 for...of (上)
MLOps的演进历程
Five Star Holdings Wang Jianguo: Deepen the track with "plant spirit" and promote growth with "animal spirit"
第十七期八股文巴拉巴拉说(数据库篇)
Vmware中安装win7虚拟机以及相关简单知识
JSON 基本使用
Space not freed after TRUNCATE table
web 面试高频考点 —— 性能优化篇(手写防抖、手写节流、XXS攻击、XSRF攻击)
[Microservice~Nacos] Configuration Center of Nacos
CGLIB源码易懂解析
UNI-APP_监听页面滚动h5监听页面滚动
APS系统能消除造成生产和运输延迟的瓶颈
leetcode:331. 验证二叉树的前序序列化









