Obtenez visible rectangle de QGraphicsView?

J'ai été en tirant mes cheveux avec celui-ci pendant des heures. Il y a un thread ici à ce sujet, mais rien ne semble fonctionner. QGraphicsView::rect() retourne la largeur et la hauteur, mais la left et top les valeurs ne sont pas correctement réglé (toujours 0 -- ignorant le défilé en montant). Je veux en scène coordonnées, mais il devrait être assez facile à traduire à partir de n'importe quel système. Je n'ai aucune idée de ce que horizontalScrollBar()->value() et vert sont de retour...semble être dénué de sens jibberish.


@fabrizioM:

//created here
void EditorWindow::createScene() {
    m_scene = new EditorScene(this);
    m_view = new EditorView(m_scene);
    setCentralWidget(m_view);
    connect(m_scene, SIGNAL(mousePosChanged(QPointF)), this, SLOT(mousePosChanged(QPointF)));
}

///with this constructor
EditorView::EditorView(QGraphicsScene* scene, QWidget* parent) : QGraphicsView(scene, parent) {
    setRenderHint(QPainter::Antialiasing);
    setCacheMode(QGraphicsView::CacheBackground);
    setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
    setDragMode(QGraphicsView::NoDrag);
    scale(1.0, -1.0); //flip coordinate system so that y increases upwards
    fitInView(-5, -5, 10, 10, Qt::KeepAspectRatio);
    setInteractive(true);
    setBackgroundBrush(QBrush(QColor(232,232,232), Qt::DiagCrossPattern));
}
Scratch...la barre de défilement valeurs sont relatives à... eh bien, il ne peut pas être la sceneRect() parce que ce sont des chars... mais quelque chose de similaire.
Peut-être est la façon dont on construit le QGraphicsView, toute source de l'extrait de code ?
Je ne suis pas sûr de ce que le code que vous voulez exactement. Il n'importe pas vraiment comment je le construire... le visible rect doit être exactement le même.

OriginalL'auteur mpen | 2009-08-31

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *