J'ai besoin d'afficher QGraphicsScene
dans 2 QGraphicsViews
à condition qu'ils aient des facteurs d'échelle différents pour les éléments dans la scène. La fonction la plus proche que j'ai trouvée est drawItems()
, mais pour autant que je puisse comprendre, elle doit être appelée manuellement. Comment repeindre les vues automatiquement? Je ces deux fragments de code dans le programme:Comment utiliser le dessin personnalisé dans QGraphicsViews dans PyQt?
class TGraphicsView(QGraphicsView):
def __init__(self, parent = None):
print("__init__")
QGraphicsView.__init__(self, parent)
def drawItems(self, Painter, ItemCount, Items, StyleOptions):
print("drawItems")
Brush = QBrush(Qt.red, Qt.SolidPattern)
Painter.setBrush(Brush)
Painter.drawEllipse(0, 0, 100, 100)
...
Mw.gvNavigation = TGraphicsView(Mw) # Mw - main window
Mw.gvNavigation.setGeometry(0, 0, Size1, Size1)
Mw.gvNavigation.setScene(Mw.Scene)
Mw.gvNavigation.setSceneRect(0, 0, Size2, Size2)
Mw.gvNavigation.show()
__init__
œuvres, Mw.gvNavigation
est affiché et il y a Mw.Scene items
dedans, mais drawItems()
est pas appelé.