主要介绍Graphics View框架,实现地图的浏览、放大、缩小,以及显示各个位置的视图、场景和地图坐标
效果图:
mapwidget.h
#ifndef MAPWIDGET_H
#define MAPWIDGET_H
#include <QLabel>
#include <QMouseEvent>
#include <QGraphicsView>
class MapWidget : public QGraphicsView
{
public:
MapWidget();
void readMap();
QPointF mapToMap(QPointF); //实现场景坐标系与地图坐标之间的映射,以获得某点的经纬度值
public slots:
void slotZoom(int);
QPixmap map;
protected:
void drawBackground(QPainter *painter,const QRectF &rect); //完成地图显示的功能
void mouseMoveEvent(QMouseEvent * event);
private:
qreal zoom;
QLabel *viewCoord;
QLabel *sceneCoord;
QLabel *mapCoord;
double x1,x2;
double y1,y2;
};
#endif // MAPWIDGET_H
mapwidget.cpp
#incl