QGraphicsView怎样添加多个QGraphicsScene
时间: 2023-09-17 13:10:32 浏览: 327
您可以使用QStackedWidget或QTabWidget来添加多个QGraphicsScene到QGraphicsView中。这两个小部件可以容纳多个场景,并允许用户在它们之间进行切换。
使用QStackedWidget时,您可以将每个QGraphicsScene封装在一个单独的QWidget中,并将这些小部件添加到QStackedWidget中。然后,将QStackedWidget设置为QGraphicsView的viewport部分,以便显示当前选定的场景。
以下是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QGraphicsView, QGraphicsScene, QStackedWidget, QWidget, QVBoxLayout, QApplication
import sys
class MultiSceneView(QGraphicsView):
def __init__(self):
super().__init__()
self.stack_widget = QStackedWidget()
self.setCentralWidget(self.stack_widget)
scene1 = QGraphicsScene()
scene2 = QGraphicsScene()
widget1 = QWidget()
widget1_layout = QVBoxLayout()
widget1.setLayout(widget1_layout)
widget1_layout.addWidget(scene1)
widget2 = QWidget()
widget2_layout = QVBoxLayout()
widget2.setLayout(widget2_layout)
widget2_layout.addWidget(scene2)
self.stack_widget.addWidget(widget1)
self.stack_widget.addWidget(widget2)
if __name__ == '__main__':
app = QApplication(sys.argv)
view = MultiSceneView()
view.show()
sys.exit(app.exec_())
```
您还可以使用QTabWidget来实现相同的效果,只需将每个场景添加到不同的选项卡页中。
希望这可以帮助到您!
阅读全文