QGraphicsView: auto-resizen und zoomen
Verfasst: 25. August 2009 14:04
Hallo, ich möchte ein QGraphicsView so gestalten, dass ich zoomen kann, es aber bei Größenänderung den aktuellen Ausschnitt behält.
Für das zoomen benutze ich einen kleinen Wrapper was soweit auch funktioniert.
Das Anpassen bei Größenänderung erfolgt über ein entsprechendes resizeEvent:
Allerdings wird nun bei einer Größenänderung wieder die komplette Scene angezeigt und der ursprüngliche zoom ignoriert; sceneRect() enthält halt die komplette Scene und nicht nur den sichtbaren Ausschnitt.
Wie kann man die beiden Aufgaben (zoomen und resizen) zusammenbringen?
Viele Grüße
olebole
Wie kann ich es erreichen
Für das zoomen benutze ich einen kleinen Wrapper was soweit auch funktioniert.
Das Anpassen bei Größenänderung erfolgt über ein entsprechendes resizeEvent:
Code: Alles auswählen
class MyGraphicsView(QGraphicsView)
# ...
def set_zoom(self, zoom):
scale = zoom / self.zoom
self.scale(scale, scale)
self.zoom = zoom
def resizeEvent(self, event):
QGraphicsView.resizeEvent(self, event)
self.fitInView(self.sceneRect(), Qt.QKeepAspectRatio)Wie kann man die beiden Aufgaben (zoomen und resizen) zusammenbringen?
Viele Grüße
olebole
Wie kann ich es erreichen