PyQt5和matplotlib等绘图库制作一个数据可视化工具

本文介绍如何利用PyQt5和matplotlib创建一个数据可视化工具,详细阐述了从环境配置到UI设计,再到功能实现的全过程,包括QtCreator、PyCharm的使用,UI界面的QSS美化,以及将UI界面转换为Python代码。文章提供了项目框架结构,重点讲解了自定义绘图组件类和功能实现,并给出了项目打包及使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



首先来几张图展示一下界面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后附一个动图来演示一下效果:

在这里插入图片描述
是不是感觉还不错,接下来我们就来看看做这么一个小工具的过程吧。


一、使用环境

1.QtCreator 4.8.0

使用Qt进行界面创作的理由是它可以很方便的生成UI界面,并且制作UI界面的过程不需要任何代码的编写,这对于想要快速制作一个界面的人来说,Qt在这方面算是个不错的优点。

首先是Qt的安装。

Qt的安装很方便,在其官网上下载便可。

Qt官网地址:Qt官网.
在这里插入图片描述

2.PyCharm

Python的IDE有很多,我个人喜欢PyCharm,它的代码提示与补全功能在开发任何项目里都有很大的价值。
在这里插入图片描述

3.Python环境–Python 3.7

Python 3.7的环境已经用了很多年,个人认为比较稳定。

二、UI界面

2.1 设计UI界面

安装好Qt以后,我们就可以进行UI界面的制作了。在制作的过程中不需要编写任何代码,只需要使用Qt本身自带的组件库就可以完成基本的UI界面了,这对于不熟悉Qt的人来说是一件好事。
在这里插入图片描述

2.1.1 项目创建

打开Qt Creator后,点击“新建文件或项目”,选择默认的“Application”–“Qt Widgets Application”即可,之后自定义项目名称和路径,接下来一路按照默认点击“下一步”即可。

在这里插入图片描述
创建项目后具体的结构如图所示:
在这里插入图片描述
其中Resources为资源文件,其中包括之后界面设计用到的图标,logo等图片文件,Resources的创建方法为:右键项目名称,点击“Add New…”,选择“Qt”–“Qt Resources Files”即可完成Resources的创建。

2.1.2 界面设计

在项目列表中点击“Forms”—”MainWindow.ui“后,便出现了如图所示的设计界面,然后便根据情况,通过拖拽左侧的组件设计自己需要的界面。
在这里插入图片描述
在拖拽组件后,在右侧有相关组件的属性,根据实际情况修改属性,而在其中,修改组件的名称至关重要,因为在之后使用Python代码编写具体功能时需要使用组件的名称。

2.2 使用QSS对界面进行美化

和CSS类似,Qt有着自己的界面优化方案。Qt样式表(Qt Style Sheets,QSS)是用于定制用户界面的强有力的机制,其概念、术语是受到HTML中的级联样式表(Cascading Style Sheets,CSS)启发而来。而在该界面的制作中,我选择了直接在每个组件内加入QSS,但这耗费的一定的时间。

修改QSS的方法为:右键单击你想要修改的组件,选择”改变样式表“,在弹出的文本框中加入QSS,即可完成界面的美化。
在这里插入图片描述

2.3 将UI界面转换为.py文件

在将在Qt制作的UI文件之后,就是将其转换为.py文件,在操作之前需要安装PyQt5,而安装PyQt5的方法很简单,在PyPI网站上有最新的版本,直接使用pip安装即可:

pip3 install PyQt5

直接连接PyPI服务器可能速度比较慢,我们可以使用清华大学的镜像网站:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5

使用PyQt5的两个可执行程序进行转换,分别是:pyuic5.exe和pyrcc5.exe。

  • pyuic5.exe是用于将Qt Designer(或Qt Creator内置的UI Designer)可视化设计的界面文件(.ui文件)编译转换为Python程序文件的根据软件,是使用PyQt5设计GUI程序最常使用的根据软件
  • pyrcc5.exe是用于将Qt Creator里设计的资源文件(.qrc文件)编译转换为Python程序文件的工具软件,资源一般存储了图标、图片等UI设计资源。

这两个工具软件使用起来也很方便,Win+R打开控制台后首先使用cd跳转到UI文件的地址,然后使用pyuic5和pyrcc5即可。

例如:假设文件HelloWorld.ui保存在目录“C:\admin\UI”,执行下面的指令即可完成转换:

cd C:\admin\UI
pyuic5 -o ui_HelloWorld.py HelloWorld.ui

同理,将资源文件转换为Python文件的方法如下所示:

cd C:\admin\UI
pyrcc5 res.qrc -o HelloWorld.ui

而为了节约时间,方便操作,我们可以建立一个批处理文件app.bat。你只要双击该文件便可以快速将UI文件和资源文件转换为Python文件。例如:假设你所建立的Qt项目名称为“QtApp”,所在路径为“C:\admin”,那么你就可以在该路径下新建一个批处理文件,文件内容如下:

echo off

rem将子目录QtApp下的UI文件复制到当前目录下
copy .\QtApp\HelloWorld.ui HelloWorld.ui

rem用pyuic5编译UI文件
pyrcc5 res.qrc -o HelloWorld.ui

rem用pyrcc5编译UI文件
pyrcc5 .\QtApp\res.qrc -o HelloWorld.ui

在进行如上所示的操作后,同时生产了UI文件和资源文件,这时你就可以在目录中看到编译完成后的Python文件了。

三、项目框架

3.1 ui_MainWindow.py------UI界面转.py文件

UI文件编译后的内容是一个类,如下所示:
在这里插入图片描述
pyuic5通过编译,实际上创建了一个叫做Ui_MainWindow的类,在这个类里包含了UI文件中各个组件的相关属性,以及涉及的资源文件等。

3.2 res_re.py------资源文件

打开编译后的资源文件后,查看它的内容,你会发现文件的内容如图所示:
在这里插入图片描述
编译完成后的资源文件里保存的是相关图片的十六进制编码数据,还有相关的管理代码。

3.3 myFigureCanvas.py------自定义绘图组件类

我们在设计这个UI的时候,是使用matplotlib等绘图库的,为了方便设计,设计一个从QWidget继承的绘图组件类QmyFigureCanvas,在这个类里创建一个FigureCanvas对象、一个Figure对象和一个NavigationToolBar工具栏,构成一个绘图组件。在进行界面设计的时候,我们只要将放置的QWidget组件提升为QmyFigureCanvas类,就可以完成可视化的展示,其完整代码如下所示:

from PyQt5.QtWidgets import  QWidget

import matplotlib as mpl

from  matplotlib.backends.backend_qt5agg import (FigureCanvas,
            NavigationToolbar2QT as NavigationToolbar)

from PyQt5.QtWidgets import   QVBoxLayout

import matplotlib.pyplot as plt

class QmyFigureCanvas(QWidget):
   
   def __init__(self, parent=None, toolbarVisible=True,showHint=False):
      super().__init__(parent) 

      self.figure=plt.figure()  #公共的figure属性
      figCanvas = FigureCanvas(self.figure)  #创建FigureCanvas对象,必须传递一个Figure对象

      self.naviBar=NavigationToolbar
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值