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