如何显示QGraphicsScene?
我有以下代码,但我不太确定怎么把QGraphicsScene加到我的布局里……
class MainForm(QDialog):
def __init__(self, parent=None):
super(MainForm, self).__init__(parent)
self.scene = QGraphicsScene(self)
self.scene.setSceneRect(0, 0, 500, 500)
self.view = QGraphicsView()
self.view.setRenderHint(QPainter.Antialiasing)
self.view.setScene(self.scene)
self.view.setFocusPolicy(Qt.NoFocus)
zoomSlider = QSlider(Qt.Horizontal)
zoomSlider.setRange(5, 200)
zoomSlider.setValue(100)
self.pauseButton = QPushButton("Pause")
quitButton = QPushButton("Quit")
layout = QVBoxLayout()
layout.addWidget(zoomSlider)
self.setLayout(layout)
self.startTimer(10)
我该怎么让我的QGraphicsScene运行起来?我刚接触Qt。难道我真的需要把QGraphicsScene加到布局里吗?
2 个回答
0
你已经添加了一个场景到视图中,这样就可以了。但你还需要把这个视图加到你的主窗口(MainForm)和布局(Layout)里。视图是一种可以在你的应用程序中显示的小部件,而场景则不是小部件,不能直接加到布局里,它只是视图的一个组成部分。此外,你可能还需要在场景中添加一些图形元素(比如矩形、图片),然后看看它们是怎么工作的。
2
你需要做一些类似这样的事情:
...
layout = QVBoxLayout()
layout.addWidget(zoomSlider)
layout.addWidget(view)
self.setLayout(layout)
...