以下是一个使用QGraphicsView的简单案例,用于显示多个图形:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class GraphicsScene(QGraphicsScene):
def __init__(self, parent=None):
super().__init__(parent)
# 添加圆形
ellipse1 = self.addEllipse(0, 0, 50, 50)
ellipse1.setBrush(QBrush(Qt.red))
ellipse2 = self.addEllipse(50, 50, 50, 50)
ellipse2.setBrush(QBrush(Qt.green))
ellipse3 = self.addEllipse(100, 100, 50, 50)
ellipse3.setBrush(QBrush(Qt.blue))
class GraphicsView(QGraphicsView):
def __init__(self, parent=None):
super().__init__(parent)
# 设置scene和viewport
self.setScene(GraphicsScene())
self.setRenderHint(QPainter.Antialiasing)
self.setViewportUpdateMode(QGraphicsView.FullViewportUpdate)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
# 添加QGraphicsView
view = GraphicsView()
self.setCentralWidget(view)
self.setWindowTitle('Graphics View Example')
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
运行此代码将显示一个窗口,其中包含三个不同颜色的圆。可以通过拖动鼠标来移动视图并缩放视图。