Holen Sie sich sichtbare Rechteck von QGraphicsView?

Ich habe mein Haar ziehen mit dieser für Stunden. Es gibt einen thread hier, aber nichts scheint zu funktionieren. QGraphicsView::rect() liefern die Breite und Höhe, aber das left und top Werte sind nicht richtig eingestellt (immer 0 -- ignorieren der gescrollt Menge). Ich will, dass es in Szene-Koordinaten, aber es sollte einfach genug, zu übersetzen, von jedem system. Ich habe keine Ahnung, was horizontalScrollBar()->value() und vert zurückkehren...bedeutungslos zu sein scheint 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));
}
  • Kratzer,...der scrollbar die Werte sind relativ zu... naja, es kann nicht sein das sceneRect (), da diese schwimmt... aber etwas ähnliches.
  • Vielleicht ist, wie Sie zu konstruieren, das QGraphicsView, jeder source-code-snippet ?
  • Ich bin mir nicht sicher, welchen code Sie genau möchten. Ist es nicht eigentlich egal, wie ich es konstruieren... immer das sichtbare "rect" sollte genau das gleiche.
InformationsquelleAutor mpen | 2009-08-31
Schreibe einen Kommentar