【问题标题】:How to display a QGraphicsScene?如何显示 QGraphicsScene?
【发布时间】:2010-03-21 17:45:24
【问题描述】:

我有以下代码,但我不确定如何将 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/

【问题讨论】:

    标签: python qt pyqt


    【解决方案1】:

    你必须这样做:

    ...
    layout = QVBoxLayout()
    layout.addWidget(zoomSlider)
    layout.addWidget(view)
    self.setLayout(layout)
    ...
    

    【讨论】:

      【解决方案2】:

      你已经添加了一个场景来查看,这就足够了。但是您应该将视图添加到 MainForm 和 Layout。 View 是一种可以被您的应用程序显示的小部件,而场景不是小部件,不能添加到布局中,它是视图的一个组件。此外,您可能需要在场景中添加一些图形项(例如矩形、图像),看看它是如何工作的。

      【讨论】:

        猜你喜欢
        • 2020-10-17
        • 1970-01-01
        • 1970-01-01
        • 2012-06-18
        • 1970-01-01
        • 1970-01-01
        • 2017-04-01
        • 2012-06-25
        • 1970-01-01
        相关资源
        最近更新 更多