Koordinaten mappen
Verfasst: 4. Februar 2010 21:03
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:
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
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);
}
Schöne Grüße,
Simon