当前位置:网站首页>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 partial
partial的用法如下所示:
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
边栏推荐
猜你喜欢
孙正义亏掉1500亿:当初投贵了
nvm下node安装;node环境变量配置
Evolution of MLOps
Arcgis工具箱无法使用,显示“XML包含错误“的解决方法
[Microservice~Nacos] Configuration Center of Nacos
leetcode 39. 组合总和(完全背包问题)
Domestic mobile phone manufacturers once fought for it, but now it is the first to collapse...
一文让你快速了解隐式类型转换【整型提升】!
This article lets you quickly understand implicit type conversion [integral promotion]!
EasyExcel使用
随机推荐
C. Omkar and Baseball
2022年中国第三方证券APP创新专题分析
JS解混淆-AST还原案例
(转)字符集编码标识符,数字表示字符编码
肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!
Vmware中安装win7虚拟机以及相关简单知识
OFDM 十六讲 7 - Inter-Symbol-Interference
Kubernetes Service对象
Basic operations of openGauss database (super detailed)
好未来,想成为第二个新东方
leetcode 38. 外观数列
leetcode:325. 和等于k的最长子数组长度
Cesium渐变色3dtiles白模(视频)
跨端技术方案选什么好?
继承关系下构造方法的访问特点
p5.js实现的炫酷星体旋转动画
EasyExcel使用
R语言ggplot2可视化:使用ggplot2可视化散点图、使用labs参数自定义Y轴的轴标签文本(customize Y axis labels)
TRUNCATE表之后空间未释放
three.js镂空圆球拖拽变形js特效