Koordinaten mappen

Verschiedenes zu Qt
Antworten
TheClerk
Beiträge: 23
Registriert: 21. Oktober 2009 14:16

Koordinaten mappen

Beitrag von TheClerk »

Hallo liebes Qt-Forum,

ich habe ein Problem mit dem hin- und hertransformieren von globalen Koordinaten und Widgetkoordinaten. Ich beschränke mich hier mal auf ein simples Problem. Nehmen wir mal folgenden code:

Code: Alles auswählen

#include "mapview.hpp"

MapView::MapView(MapScene* scene, QWidget* parent) : QGraphicsView(scene, parent){
    transformMatrix = new QTransform(1, 0, 0, 0, -1, 0, 0, 0, 1);
    this->setTransform(*transformMatrix);
}

void MapView::keyPressEvent(QKeyEvent* event){
    switch (event->key()){
    case Qt::Key_B:
        this->cursor().setPos(mapToGlobal(QPoint(100, 100)));
        break;
    }
}

void MapView::mouseMoveEvent(QMouseEvent *event){
    // Übergabe der Koordinaten an MapPanel
    QPointF viewPos (event->x(), event->y());
    QPointF scenePos;
    scenePos = this->mapToScene(QPoint(event->x(), event->y()));
    emit mouseMoved(viewPos, scenePos);
}
Dann erscheinen nicht die Koordinaten (100, 100) wenn ich 'B' druecke, sondern die Koordinaten (98, 98) auf meiner Anzeige. Auch wenn ich die Werte verändere, sind sie immer um 2 kleiner, als sie sein sollten. Kann mir jemand weiterhelden und mir verraten, woran das liegt? Ich habe bei diesem code-Ausschnitt ein bisschen entfernt, was mir nicht wichtig schien. Ich habe aber das ganze Projekt als rar-Datei angefügt, falls sich das bitte jemand angucken möchte.

Schöne Grüße,
Simon
Dateianhänge
GalaxyAdministrator.rar
Das ganze Projekt
(5.94 KiB) 141-mal heruntergeladen
Antworten