QGraphicsScene保存图片
1 import sys 2 import time 3 from PySide6.QtCore import * 4 from PySide6.QtGui import * 5 from PySide6.QtWidgets import * 6 7 class MyQWidget(QWidget): 8 def __init__(self, parent = ..., f = ...): 9 super().__init__(parent, f) 10 11 self.gs = QGraphicsScene() 12 rc = QGraphicsEllipseItem(QRect(20, 40, 400, 800)) 13 self.gs.addItem(rc) 14 self.gv = QGraphicsView(self, scene=self.gs) 15 16 self.btn = QPushButton() 17 self.btn.setText('保存图片') 18 self.btn.clicked.connect(self.button_clicked) 19 20 self.ly = QVBoxLayout() 21 self.ly.addWidget(self.btn) 22 self.ly.addWidget(self.gv) 23 24 self.setLayout(self.ly) 25 26 def button_clicked(self): 27 pixmap = QPixmap(int(self.gs.width()), int(self.gs.height())) 28 pixmap.fill(Qt.GlobalColor.white) 29 painter = QPainter(pixmap) 30 self.gs.render(painter) 31 painter.end() 32 pixmap.save('./test.png') 33 34 class MyMainWindow(QMainWindow): 35 def __init__(self, parent = ..., flags = ...): 36 super().__init__(parent, flags) 37 38 self.centerWg = MyQWidget(self, Qt.WindowType.Widget) 39 self.setCentralWidget(self.centerWg) 40 41 if '__main__' == __name__: 42 app = QApplication(sys.argv) 43 win = MyMainWindow(None, Qt.WindowType.Window) 44 win.setFixedSize(QSize(400, 300)) 45 win.show() 46 sys.exit(app.exec())
标签:__,gs,self,QGraphicsScene,保存,init,import,图片 From: https://www.cnblogs.com/hanjun126/p/18612950