.h部分
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QGraphicsView>
#include <QLabel>
#include <QMouseEvent>
class Widget : public QGraphicsView
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
void readMap();
QPointF mapToMap(QPointF);//用于实现场景坐标系与地图之间的映射,以获得某点的经纬度
public slots:
void slotZoom(int);
protected:
//完成地图显示的功能
void DrawWindowBackground(QPainter* painter,const QRectF& rect);
void mouseMoveEvent(QMouseEvent* event);
private:
QPixmap map;
qreal zoom;
QLabel* viewCoord;
QLabel* sceneCoord;
QLabel* mapCoord;
double x1,y1;
double x2,y2;
};
#endif // WIDGET_H
.cpp
#include "widget.h"
#include <QSlider>
#include <QGridLayout>
#include <QFile>
#include <QTextStream>
#include <QGraphicsScene>
#include <math.h>
#include <QPixmap>
Widget::Widget(QWidget *parent)
{
//读取地图信息
readMap();
zoom = 50;
int width =map.width()