QGraphicsView "festsetzen"
Verfasst: 19. September 2011 23:42
Hallo,
ich programmiere eine graphische Oberfläche, auf der man verschiedene Elemente plazieren kann.
Nachdem ich nun schon ziemlich viel von Hand zu Fuss, soll heissen mit QPainter programmiert habe, bin ich bei meinen Recherchen auf die Klasse QGraphicsView bzw. QGraphicsScene gekommen. Das ist im Prinzip her genau das was ich suche, muss natürlich noch ein wenig angepasst werden.
Nun hab ich folgendes Problem:
Ich hab nun erstmal versucht mich in diese Klasse einzuarbeiten, hab ein simples QGraphicsView und QGraphicsScene instanziiert und das QgraphicsView als CentralWidget in ein MainWindow implantiert. Mit einem Linksklick lässt sich an einer beliebigen Stelle ein Rechteck zeichnen. Das soll es auch erstmal sein und das funktioniert auch. Allerdings besteht das "Problem", dass nach jedem gesetzten Rechteck das QGraphicsView den Ausschnitt ändert. Ich möchte aber, dass der Ausschnitt bei Setzen eines Rechtecks genau so bleibt, wie vor dem Setzen des Rechtecks (ok, verschieben darf sich von mir aus der Ausschnitt, wenn ein Rechteck so gesetzt wird, dass es Bereich ausserhalb der Ansicht einnimmt).
Leider hab ich noch nicht entdeckt, welche Flag ich setzen muss bzw. wie ich das QGraphicsView einrichten muss, damit das angezeigte Bereich sich nicht verschiebt.
Die einzigste Möglichkeit war bisher, mit setSceneRect einen festen Bereich zu setzen. Aber dann lässt sich das QGraphicsView nicht mehr automatisch mit Scrollbars erweitern und ist fürs Zoomen sicherlich auch nicht sinnvoll.
Könnte ihr mir sagen, was ich machen muss?
MfG und Danke
ich programmiere eine graphische Oberfläche, auf der man verschiedene Elemente plazieren kann.
Nachdem ich nun schon ziemlich viel von Hand zu Fuss, soll heissen mit QPainter programmiert habe, bin ich bei meinen Recherchen auf die Klasse QGraphicsView bzw. QGraphicsScene gekommen. Das ist im Prinzip her genau das was ich suche, muss natürlich noch ein wenig angepasst werden.
Nun hab ich folgendes Problem:
Ich hab nun erstmal versucht mich in diese Klasse einzuarbeiten, hab ein simples QGraphicsView und QGraphicsScene instanziiert und das QgraphicsView als CentralWidget in ein MainWindow implantiert. Mit einem Linksklick lässt sich an einer beliebigen Stelle ein Rechteck zeichnen. Das soll es auch erstmal sein und das funktioniert auch. Allerdings besteht das "Problem", dass nach jedem gesetzten Rechteck das QGraphicsView den Ausschnitt ändert. Ich möchte aber, dass der Ausschnitt bei Setzen eines Rechtecks genau so bleibt, wie vor dem Setzen des Rechtecks (ok, verschieben darf sich von mir aus der Ausschnitt, wenn ein Rechteck so gesetzt wird, dass es Bereich ausserhalb der Ansicht einnimmt).
Leider hab ich noch nicht entdeckt, welche Flag ich setzen muss bzw. wie ich das QGraphicsView einrichten muss, damit das angezeigte Bereich sich nicht verschiebt.
Die einzigste Möglichkeit war bisher, mit setSceneRect einen festen Bereich zu setzen. Aber dann lässt sich das QGraphicsView nicht mehr automatisch mit Scrollbars erweitern und ist fürs Zoomen sicherlich auch nicht sinnvoll.
Könnte ihr mir sagen, was ich machen muss?
MfG und Danke