Exemple #1
0
def main(args):  # pragma: no cover
    # pylint: disable=import-outside-toplevel,protected-access
    from AnyQt.QtWidgets import QApplication, QAction
    from AnyQt.QtGui import QKeySequence
    app = QApplication(args)
    view = StickyGraphicsView()
    scene = QGraphicsScene(view)
    scene.setBackgroundBrush(QBrush(Qt.lightGray, Qt.CrossPattern))
    view.setScene(scene)
    scene.addRect(QRectF(0, 0, 300, 20), Qt.red,
                  QBrush(Qt.red, Qt.BDiagPattern))
    scene.addRect(QRectF(0, 25, 300, 100))
    scene.addRect(QRectF(0, 130, 300, 20), Qt.darkGray,
                  QBrush(Qt.darkGray, Qt.BDiagPattern))
    view.setHeaderSceneRect(QRectF(0, 0, 300, 20))
    view.setFooterSceneRect(QRectF(0, 130, 300, 20))
    view.show()
    zoomin = QAction("Zoom in", view, shortcut=QKeySequence.ZoomIn)
    zoomout = QAction("Zoom out", view, shortcut=QKeySequence.ZoomOut)
    zoomreset = QAction("Reset",
                        view,
                        shortcut=QKeySequence(Qt.ControlModifier | Qt.Key_0))
    view._zoom = 100

    def set_zoom(zoom):
        if view._zoom != zoom:
            view._zoom = zoom
            view.setTransform(QTransform.fromScale(*(view._zoom / 100, ) * 2))
            zoomout.setEnabled(zoom >= 20)
            zoomin.setEnabled(zoom <= 300)

    @zoomin.triggered.connect
    def _():
        set_zoom(view._zoom + 10)

    @zoomout.triggered.connect
    def _():
        set_zoom(view._zoom - 10)

    @zoomreset.triggered.connect
    def _():
        set_zoom(100)

    view.addActions([zoomin, zoomout, zoomreset])

    return app.exec()
 def basic_scene():
     scene = QGraphicsScene()
     scene.addRect(QRectF(0, 0, 100, 100))
     return scene