怎么在Qt Designer设计的界面上显示Matplotlib的绘图?

首先,利用Qt Designer设计界面。
在这里插入图片描述
设计好后保存为ui文件。
接着,将ui文件转为py文件。
我喜欢在python中进行转换,因此把转换命令封装为函数,运行一下即可。

import os
# pyuic5 -o output_file.py input_file.ui
#通过命令把.ui文件转换成.py文件
def ui_to_py(path_ui,path_py):'''把ui文件转为py文件.path_ui:ui文件路径,path_py:py文件路径'''cmd = f'pyuic5 -o {path_py} {path_ui}'os.system(cmd)if __name__ =="__main__":ui='G:/MyPythonFiles/pyqt绘图测试界面.ui'py='G:/MyPythonFiles/pyqt绘图测试界面.py'ui_to_py(ui,py)print('转换完毕')

转换完成后的代码如下:

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'G:/MyPythonFiles/pyqt绘图测试界面.ui'
#
# Created by: PyQt5 UI code generator 5.15.10
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(1260, 689)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget)self.graphicsView.setGeometry(QtCore.QRect(370, 20, 801, 581))self.graphicsView.setObjectName("graphicsView")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 1260, 26))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "绘图测试"))

然后就是使用Matplotlib绘制图片,然后在我们刚才设计的界面上显示了。
此时,我们需要写一个类,继承在Qt Designer上设计的界面。
同时,创建一个QGraphicsScene,将其添加到self.graphicsView中。

就是这么简单!
但是因为找不到相关的资料,一开始我研究了好多天好多天,一直不得要领!简直是太痛苦了!
好在,最后还是弄明白了!ChatGTP帮了我许多忙!


from PyQt5.QtWidgets import QMainWindow, QGraphicsScene, QGraphicsView,QApplication
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import sysimport numpy as np
import matplotlib.pyplot as plt
# from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvasfrom pyqt绘图测试界面 import *class MyWindow(QMainWindow,Ui_MainWindow):def __init__(self):# 继承设计的ui界面super().__init__()# 继承其方法self.setupUi(self)self.retranslateUi(self)""" QGraphicsScene是Qt中的一个类,它是2D图形界面的基础,可以在其上添加各种图形项,例如线条、矩形、椭圆、文本、像素图等,还可以设置它们的位置、大小、旋转等属性。而QGraphicsView则是用于显示QGraphicsScene的视图类,可以实现缩放、平移等交互操作,以及使用鼠标对图形项进行选择、移动等操作。 """# 创建 QGraphicsScene,并添加到QGraphicsViewself.scene = QGraphicsScene(self)self.graphicsView.setScene(self.scene)# 创建 Matplotlib Figure 和 FigureCanvasself.figure = Figure()# 把figure转为pyqt的一个控件self.canvas = FigureCanvas(self.figure)self.axes = self.figure.add_subplot(111)# 将 FigureCanvas 添加到 QGraphicsScene 中self.scene.addWidget(self.canvas)self.myplot()def myplot(self):# 绘制图像x = np.linspace(0, 10, 100)y = np.sin(x)self.axes.plot(x, y)if __name__ == '__main__':app = QApplication(sys.argv)window = MyWindow()window.show()sys.exit(app.exec_())

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【云原生】Kubernetes-----POD资源限制与探针机制

目录 引言 一、资源限制 (一)基本定义 (二)资源单位 1.CPU资源 2.内存资源 (三)请求与限制 (四)定义方式 1.编写yaml文件 2.查看资源情况 二、Pod探针机制 (…

动态规划之背包问题中如何确定遍历顺序的问题-组合or排列?

关于如何确定遍历顺序 322. 零钱兑换中,本题求钱币最小个数,那么钱币有顺序和没有顺序都可以,都不影响钱币的最小个数。 所以本题并不强调集合是组合还是排列。 如果求组合数就是外层for循环遍历物品,内层for遍历背包。 如果求…

UML建模

一、概述 二、类图 三、用例图 四、顺序图 五、活动图 六、状态图 七、通信图 八、构件图

学 C/C++ 具体能干什么?

学习 C 和 C 后,你可以从事许多不同的工作和项目,这两种语言以其高性能和低级控制而闻名,特别适合以下几个领域: 1. 系统编程 C 和 C 是系统编程的首选语言,适用于操作系统、驱动程序和嵌入式系统开发。 操作系统开发…

MySQL--InnoDB体系结构

目录 一、物理存储结构 二、表空间 1.数据表空间介绍 2.数据表空间迁移 3.共享表空间 4.临时表空间 5.undo表空间 三、InnoDB内存结构 1.innodb_buffer_pool 2.innodb_log_buffer 四、InnoDB 8.0结构图例 五、InnoDB重要参数 1.redo log刷新磁盘策略 2.刷盘方式&…

明星IP切片带货爆单营,0基础搞定IP切片带货短视频(69节课)

把握带货趋势,了解切片流程,剪辑带货创收营 课程目录: 01第一章实操链路-第一节IP选择.mp4 02第一章实操链路-第二节账号准备.mp4 03第一章实操链路-第四节开通权限.mp4 04第一章实操链路-第五节货品准备.mp4 05第一章实操链路-第六节素…

一、Servlet和JSP技术概述

注:该系列笔记是用于我在 《Servlet 与 JSP 核心编程》这本书中的学习笔记,无其他意思,侵权请联系2082045221qq.com删除。 ​ 第一章内容较少,所以暂时有用的笔记也不多。 1.1、Servlet 的功用: ​ Servlet 是运行在…

Go语言之GORM框架(二) ——GORM的单表操作

前言 在上一篇文章中,我们对Gorm进行了介绍,而在这一篇文章中我们主要介绍GORM的单表查询与Hook函数,在进行今天的内容之前我们先事先说明一下,下面我们对单表进行操作的表结构如下: type Student struct {ID uint gorm:&qu…

推荐系统学习笔记(四)--基于向量的召回

离散特征处理 离散特征:性别,国籍,英文单词,物品id,用户id 处理: 建立字典:eg:china 1 向量化:eg:one-hot /embedding(低维稠密向量&#xf…

网络模型-BFD与网络协议联动

一、BFD:双向转发检测 双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。 1、BFD优点: 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。这些故障包括接口数据链路&#…

​✨聚梦AI绘图插件-for photoshop(基于ComfyUI) 内测版V0.1发布

🎈背景 photoshop本身是有AI生成能力的,不过限于种种原因,国内使用很不方便。 photoshop也是有AI插件的,不过大多安装起来比较复杂,或者,干脆就会收费。 所以我们做了一个免费的AI插件,期望能…

计算机毕业设计 | SpringBoot招投标 任务发布网站(附源码)

1,绪论 在市场范围内,任务发布网站很受欢迎,有很多开发者以及其他领域的牛人,更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上,任务发布网站鱼龙混杂,用户需要找一个…

民国漫画杂志《时代漫画》第24期.PDF

时代漫画24.PDF: https://url03.ctfile.com/f/1779803-1248635000-177187?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

基于xilinx FPGA的 FFT IP使用例程说明文档(可动态配置FFT点数,可计算信号频率与幅度)

目录 1 概述2 IP examples功能3 IP 使用例程3.1 IP设置3.2 fft_demo端口3.3 例程框图3.4 仿真结果3.5 仿真验证得出的结论4 注意事项5例程位置 1 概述 本文用于讲解xilinx IP 的FFT ip examples的功能说明,方便使用者快速上手。 参考文档:《PG109》 2 …

Python数据可视化(五)

实现GUI效果 借助 matplotlib,除可以绘制动画内容外,还可以实现用户图形界面的效果,也就是 GUI 效果。 GUI是用户使用界面的英文单词首字母的缩写。接下来,我们就以模块widgets中的类RadioButtons、 Cursor 和 CheckButtons 的使用…

Wpf 使用 Prism 实战开发Day25

首页待办事项及备忘录添加功能 一.修改待办事项和备忘录逻辑处理类,即AddMemoViewModel和AddTodoViewModel 1.AddMemoViewModel 逻辑处理类,添加View视图数据要绑定的实体类 Model public class AddMemoViewModel :BindableBase,IDialogHostAware{public AddMemoV…

【B站 heima】小兔鲜Vue3 项目学习笔记Day03

文章目录 Home1.Home整体结构搭建和分类实现2. banner轮播图功能3. Home 面板组件封装4.新鲜好物和人气推荐实现5. 图片懒加载指令实现6. Home- product产品列表实现7. Home-GoodsItem 组件封装 一级路由1. 整体认识和路由配置2. 面包屑导航3. 一级分类 - 轮播图的实现4. 激活状…

基于Pytorch框架的深度学习EfficientNet神经网络香蕉水果成熟度识别分类系统源码

第一步:准备数据 4种香蕉水果成熟度数据:overripe,ripe,rotten,unripe(过熟、熟、烂、未成熟),总共有13474张图片,每个文件夹单独放一种成熟度数据 第二步:搭…

ZEDmini使用完全指南

ZEDmini使用 ZED stereolabs 开箱测评 使用说明 ubuntu18.04nvidiacuda10 ubuntu18.04ZED SDK安装和使用 Ubuntu16.04安装NVIDIA显卡驱动 查看显卡信息 redwallredwall-G3-3500:~/catkin_ws$ lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation Device …

sourcetree推送到git上面

官网:Sourcetree | Free Git GUI for Mac and Windows 下载到1次提交 下载后打开 点击跳过 下一步 名字邮箱 点击clone 把自己要上传的代码粘贴到里面去 返回点击远程->点击暂存所有 加载完毕后,输入提交内容提交 提交完成了 2次提交 把文件夹内的…