【Python
基于PyQtGraph设置槽函数,实现保存图片到本地的功能
前言
基于PyQtGraph实现绘图功能后,想要将绘制好的图片保存到本地,PyQtGraph是支持在可视化窗口中右键保存的(Exporting from the GUI);那么是否可以设置一个槽函数,通过点击保存图片的按钮实现保存图片的功能,故基于此需求进行功能的实现。
正文
1、创建Button对象,并绑定槽函数
首先要创建Button对象,并绑定槽函数:
self.ui.btnSavePic = QPushButton() # 初始化 保存图像按钮self.ui.btnSavePic.setStyleSheet("background: rgba(225,225,225,0.20)") # 设置保存图像按钮 背景色及背景透明度,0.20为透明度self.ui.btnSavePic.setText("保存图像") # 保存图像按钮设置文本self.ui.btnSavePic.clicked.connect(self.__f_btnSaveImageClicked)
在 self.__f_btnSaveImageClicked() 方法中实现保存图片的功能。
2、槽函数的实现
重点: 使用pyqtgraph.exporters的export方法,先创建pyqtgraph.exporters对象,然后调用export()方法。
具体代码实现:
import pyqtgraph as pg
import pyqtgraph.exporters
# 保存图像按钮按下处理函数def __f_btnSaveImageClicked(self):"""function: 保存图像按钮按下处理函数in: Noneout: Nonereturn: ir=True ok, ir=False some wrongothers: handle function of the button Save Image clicked"""folder_path = os.getcwd() # 获取当前文件所在文件夹路径save_path_dir = f"{folder_path}\\TestResult" # 测试结果图片存放路径if not os.path.exists(save_path_dir): # 判断该路径是否存在os.makedirs(save_path_dir) # 如果不存在则创建now_time = datetime.datetime.now() # 获取当前时间new_time = now_time.strftime('[%Y-%m-%d %H-%M-%S]') # 设置时间输出格式ex = pg.exporters.ImageExporter(self.ui.pw.scene()) # 创建pyqtgraph.exporters对象file_path=f"{save_path_dir}\\{new_time}Pic.png"ex.export(file_path) # 调用pyqtgraph.exporters的export方法if os.path.exists(file_path):reply = QMessageBox.information(self.ui, '提示', '保存成功!', QMessageBox.Yes)
实现保存图片功能的代码段:
ex = pg.exporters.ImageExporter(self.ui.pw.scene()) # 创建pyqtgraph.exporters对象file_path=f"{save_path_dir}\\{new_time}Pic.png"ex.export(file_path) # 调用pyqtgraph.exporters的export方法
ex: 创建的exporters对象;
self.ui.pw: 创建的GraphicsLayoutWidget对象 (self.ui.pw = pg.GraphicsLayoutWidget(show=True))
file_path: 图片对象要保存的路径
3、实现的效果图:
【Python
基于PyQtGraph设置槽函数,实现保存图片到本地的功能
前言
基于PyQtGraph实现绘图功能后,想要将绘制好的图片保存到本地,PyQtGraph是支持在可视化窗口中右键保存的(Exporting from the GUI);那么是否可以设置一个槽函数,通过点击保存图片的按钮实现保存图片的功能,故基于此需求进行功能的实现。
正文
1、创建Button对象,并绑定槽函数
首先要创建Button对象,并绑定槽函数:
self.ui.btnSavePic = QPushButton() # 初始化 保存图像按钮self.ui.btnSavePic.setStyleSheet("background: rgba(225,225,225,0.20)") # 设置保存图像按钮 背景色及背景透明度,0.20为透明度self.ui.btnSavePic.setText("保存图像") # 保存图像按钮设置文本self.ui.btnSavePic.clicked.connect(self.__f_btnSaveImageClicked)
在 self.__f_btnSaveImageClicked() 方法中实现保存图片的功能。
2、槽函数的实现
重点: 使用pyqtgraph.exporters的export方法,先创建pyqtgraph.exporters对象,然后调用export()方法。
具体代码实现:
import pyqtgraph as pg
import pyqtgraph.exporters
# 保存图像按钮按下处理函数def __f_btnSaveImageClicked(self):"""function: 保存图像按钮按下处理函数in: Noneout: Nonereturn: ir=True ok, ir=False some wrongothers: handle function of the button Save Image clicked"""folder_path = os.getcwd() # 获取当前文件所在文件夹路径save_path_dir = f"{folder_path}\\TestResult" # 测试结果图片存放路径if not os.path.exists(save_path_dir): # 判断该路径是否存在os.makedirs(save_path_dir) # 如果不存在则创建now_time = datetime.datetime.now() # 获取当前时间new_time = now_time.strftime('[%Y-%m-%d %H-%M-%S]') # 设置时间输出格式ex = pg.exporters.ImageExporter(self.ui.pw.scene()) # 创建pyqtgraph.exporters对象file_path=f"{save_path_dir}\\{new_time}Pic.png"ex.export(file_path) # 调用pyqtgraph.exporters的export方法if os.path.exists(file_path):reply = QMessageBox.information(self.ui, '提示', '保存成功!', QMessageBox.Yes)
实现保存图片功能的代码段:
ex = pg.exporters.ImageExporter(self.ui.pw.scene()) # 创建pyqtgraph.exporters对象file_path=f"{save_path_dir}\\{new_time}Pic.png"ex.export(file_path) # 调用pyqtgraph.exporters的export方法
ex: 创建的exporters对象;
self.ui.pw: 创建的GraphicsLayoutWidget对象 (self.ui.pw = pg.GraphicsLayoutWidget(show=True))
file_path: 图片对象要保存的路径