Diesmal einen Schritt weiter. Nun will ich die drei Ansichten, die ich mit QGraphicsView/Scene produziert angezeigt bekomme, verändern.
Und zwar will ich mit Hilfe von unterschiedlichen Buttons (+ und - ) rein, bzw. rauszoomen, die Ansicht in der Ursprünglichen Normalen geladenen Größe darstellen und in den angesetzten Rahmen der Scene eipassen (also Fit in View).
Das Zoomen funktioniert hervorragend und habe ich hiermit gut gelöst:
Code: Alles auswählen
void MainWindow::zoomInV() //Reinzoomen der Vorderansicht [Analog dazu gibts auch den Zoom in Seitenansicht und Draufsicht]
{
ui->graphicsView_Vorder->scale(1.05, 1.05);
}
void MainWindow::zoomOutV() //Rauszoomen der Vorderansicht [Analog dazu gibts auch den Zoom in Seitenansicht und Draufsicht]
{
ui->graphicsView_Vorder->scale(1/1.05, 1/1.05); //Das mit dem Bruch und der entsprechenden Genauigkeit hatte ich schon rausgefunden
}
Ich dachte, ich wäre mal schau und würde den Befehl "Fit in View" nutzen, allerdings funktioniert das ganze nur bedingt.
Erstens: Egal wie groß das geladene Bild ist, ein Klick auf Fit in View bewirkt nichts. Das ganze reagiert erst dann, wenn ich mindestens einmal am Zoom gearbeitet hab (also einmal + oder - gedrückt). Dann reagiert das Fit in View, aber nicht wirklich. Es skaliert, aber nicht nachvollziehbar, wieso nicht vollständig in den Rahmen hinein.
Geöffnet wird das Bild hiermit http://www.qtforum.de/forum/viewtopic.p ... 054#p76810
Und das ist der Code-Schnipsel, der eigentlich funktioniert, aber nur wenn ich das Bild grade öffne. Danach will der Befehl nicht mehr reagieren.
Ausprobiert habe ich das ganze mit einem Bild, was über mein Ansichtsfenster heraus geht und auch mit einem Bild, das kleiner ist als das Fenster.
Beides geht so nicht.
Code: Alles auswählen
void MainWindow::fitToWindowVorder()
{
ui->graphicsView_Vorder->fitInView(scene_v->sceneRect(), Qt::KeepAspectRatio); //Einpassen in den Graphikrahmen
}
Code: Alles auswählen
void MainWindow::normalSizeVorder()
{
//Planlosigkeit macht sich breit...
}
Hat noch jemand einen Vorschlag, wo ich nachschauen könnte um auf eine Lösung zu kommen?
