当前位置:网站首页>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
边栏推荐
- Linux 配置MySQL
- nvm下node安装;node环境变量配置
- 1215 – Cannot add foreign key constraint
- R语言ggstatsplot包grouped_ggscatterstats函数可视化分组散点图、并添加假设检验结果(包含样本数、统计量、效应大小及其置信区间、显著性、组间两两比较、贝叶斯假设)
- 大型分布式存储方案MinIO介绍,看完你就懂了!
- 阿里云架构师金云龙:基于云XR平台的视觉计算应用部署
- Swift 需求 如何防止把view重复添加到win里面
- web 面试高频考点 —— 性能优化篇(手写防抖、手写节流、XXS攻击、XSRF攻击)
- Rust dereference
- Blender程序化建模简明教程【PCG】
猜你喜欢
随机推荐
Rust dereference
重装系统后新建文本文档打不开怎么办
大型分布式存储方案MinIO介绍,看完你就懂了!
腾讯继续挥舞降本增效“大刀”,外包员工免费餐饮福利被砍了
typedef和#define的花里胡哨的用法
Arcgis工具箱无法使用,显示“XML包含错误“的解决方法
CGLIB源码易懂解析
leetcode:323. 无向图中连通分量的数目
xctf攻防世界 Web高手进阶区 shrine
nvm下node安装;node环境变量配置
B. Applejack and Storages
Qt 消息机制和事件
异常处理(try,catch,finally)
Five Star Holdings Wang Jianguo: Deepen the track with "plant spirit" and promote growth with "animal spirit"
【TS技术课堂】时间序列预测
聊天尬死名场面,你遇到过吗?教你一键获取斗图表情包,晋升聊天达人
One Pass 2074: [21CSPJ Popularization Group] Candy
ArrayList 和 LinkedList 区别
MySQL——JDBC
OKR 锦囊妙计









