要在QGraphicsView中实现右键另存为图像,可以按照以下步骤进行操作:

  1. 创建一个自定义的QGraphicsView子类,例如MyGraphicsView,并在其构造函数中添加以下代码:
self.setContextMenuPolicy(Qt.ActionsContextMenu)

save_action = QAction("另存为图像", self)
save_action.triggered.connect(self.save_image)
self.addAction(save_action)
  1. 在MyGraphicsView中添加一个save_image()方法:
def save_image(self):
    # 获取当前视图的场景
    scene = self.scene()

    # 创建一个QPixmap对象,并设置其大小为场景的大小
    pixmap = QPixmap(scene.sceneRect().size().toSize())

    # 创建一个QPainter对象,并将其绘制到pixmap上
    painter = QPainter(pixmap)
    scene.render(painter)

    # 弹出一个文件保存对话框,让用户选择保存的文件名和路径
    file_dialog = QFileDialog()
    file_path, _ = file_dialog.getSaveFileName(self, "保存图像", "", "PNG图像 (*.png);;JPEG图像 (*.jpg *.jpeg)")

    # 如果用户选择了文件名和路径,则保存图像
    if file_path:
        pixmap.save(file_path)
  1. 使用MyGraphicsView替换你的QGraphicsView实例。

现在,当你在MyGraphicsView中右键点击时,会弹出一个菜单,其中包含一个"另存为图像"的选项。当你选择该选项时,会弹出一个文件保存对话框,让你选择保存的图像的文件名和路径。选择保存后,当前视图中的场景将被保存为图像文件

帮我在QGraphicsView中实现右键另存为图像

原文地址: http://www.cveoy.top/t/topic/iT80 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录