QGraphicsView 右键另存为图像 - Python 代码示例
要在QGraphicsView中实现右键另存为图像,可以按照以下步骤进行操作:\n\n1. 创建一个自定义的QGraphicsView子类,例如MyGraphicsView,并在其构造函数中添加以下代码:\n\npython\nself.setContextMenuPolicy(Qt.ActionsContextMenu)\n\nsave_action = QAction("另存为图像", self)\nsave_action.triggered.connect(self.save_image)\nself.addAction(save_action)\n\n\n2. 在MyGraphicsView中添加一个save_image()方法:\n\npython\ndef save_image(self):\n # 获取当前视图的场景\n scene = self.scene()\n\n # 创建一个QPixmap对象,并设置其大小为场景的大小\n pixmap = QPixmap(scene.sceneRect().size().toSize())\n\n # 创建一个QPainter对象,并将其绘制到pixmap上\n painter = QPainter(pixmap)\n scene.render(painter)\n\n # 弹出一个文件保存对话框,让用户选择保存的文件名和路径\n file_dialog = QFileDialog()\n file_path, _ = file_dialog.getSaveFileName(self, "保存图像", "", "PNG图像 (*.png);;JPEG图像 (*.jpg *.jpeg)")\n\n # 如果用户选择了文件名和路径,则保存图像\n if file_path:\n pixmap.save(file_path)\n\n\n3. 使用MyGraphicsView替换你的QGraphicsView实例。\n\n现在,当你在MyGraphicsView中右键点击时,会弹出一个菜单,其中包含一个"另存为图像"的选项。当你选择该选项时,会弹出一个文件保存对话框,让你选择保存的图像的文件名和路径。选择保存后,当前视图中的场景将被保存为图像文件。
原文地址: https://www.cveoy.top/t/topic/qz76 著作权归作者所有。请勿转载和采集!