记录PyQt的安装与使用。

1 前言

在用mujoco_py做仿真的时候,为了能直观地看到一些数据的曲线,因此需要使用PyQt5。
系统与软件版本: Ubuntu18.04 + Python3.8.13 + PyQt5-5.15

2 PyQt5的安装

PyQt5的官方链接:link

1
2
3
4
5
6
conda activate py38  # 在自己的conda环境中进行配置
pip install PyQt5
pip install pyqt5-tools
# 安装图像化界面 designer
sudo apt-get install qttools5-dev-tools
sudo apt-get install qttools5-dev

如果安装qttools5-dev时出现下图所示的错误,可以取消对Ubuntu的software更新的禁用后(但无需安装推荐的更新)再安装。
04
安装好之后两个软件的位置:

  • designer: /usr/lib/x86_64-linux-gnu/qt5/bin/designer
  • pyuic5: /media/robot/ubuntu/anaconda3/envs/py38/bin/pyuic5
    查看在哪里可以借助which命令,例如:which pyuic5

3 vscode上配置

VS Code中安装插件 PYQT Integration。然后设置插件的两个位置如下:
1
2

4 使用

界面的布局有两种方式打开:

  • 直接搜索软件 designer
  • 在vscode文件栏那里的空白地方单击右键,选择 PyQt: New Form

创建一个空白的界面,保存后关闭 designer,然后将该 .ui 文件转为 .py,同样有两种方式:

  • 在终端中执行: pyuic5 path/hello.ui -o path/hello.py
  • 在 vscode 中文件栏处,右键hello.py,选择PyQt: Compile Form

生成的 hello.py 文件不要修改,这样便于后续界面的更改后进行覆盖。使用 hello.py 文件时,需要新建一个文件 main.py,在其中调用,示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
# main.py
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
import Ui_hello # 生成的文件

if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = Ui_hello.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

如果感觉上述方法比较麻烦,还可以在vscode中设置 Pyqt-integration > Pyuic > Compile: Add Options 添加 -x 参数,这样自动生成的.py文件是可以直接运行的,会将上面main.py中的内容自动添加到生成的Ui_hello.py中。
03

5 pyqtgraph 官方示例使用

ref: 链接
除了上面介绍的PyQt的使用,还可以用pyqtgraph来在程序中实时显示曲线,做数据分析等。pyqtgraph是一个基于Qt和numpy的绘图库,具备很好的图像交互、3D展示,运行速度快。官网给出了一个实例集合,包含了展示与源码,便于学习。打开示例的方法:

1
2
import pyqtgraph.examples
pyqtgraph.examples.run()