⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapcoordsdialog.cpp

📁 一个非常好的GIS开源新版本
💻 CPP
字号:
/***************************************************************************     mapcoordsdialog.cpp     --------------------------------------    Date                 : 2005    Copyright            : (C) 2005 by Lars Luthman    Email                : larsl at users dot sourceforge dot net *************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/#include <QValidator>#include <mapcoordsdialog.h>#include <qgsmapcanvas.h>#include <qgsmaptoolemitpoint.h>MapCoordsDialog::MapCoordsDialog() {}MapCoordsDialog::MapCoordsDialog(const QgsPoint& pixelCoords, QgsMapCanvas* qgisCanvas,				 QWidget* parent, Qt::WFlags fl)   : QDialog(parent, fl) {  setupUi(this);  mPixelCoords = pixelCoords;  mQgisCanvas = qgisCanvas;  leXCoord->setValidator(new QDoubleValidator(this));  leYCoord->setValidator(new QDoubleValidator(this));  mToolEmitPoint = new QgsMapToolEmitPoint(qgisCanvas);  mToolEmitPoint->setButton(btnPointFromCanvas);  connect((QgsMapToolEmitPoint*)mToolEmitPoint, SIGNAL(gotPoint(QgsPoint&,Qt::MouseButton)),          this, SLOT(setXY(QgsPoint&)));  connect(leXCoord, SIGNAL(textChanged(const QString&)), this, SLOT(updateOK()));  connect(leYCoord, SIGNAL(textChanged(const QString&)), this, SLOT(updateOK()));  updateOK();}MapCoordsDialog::~MapCoordsDialog() {  delete mToolEmitPoint;}void MapCoordsDialog::updateOK(){  bool enable = (leXCoord->text().size() != 0 && leYCoord->text().size() != 0);  buttonOk->setEnabled(enable);}void MapCoordsDialog::on_buttonOk_clicked() {  QgsPoint mapCoords(leXCoord->text().toDouble(), leYCoord->text().toDouble());  emit pointAdded(mPixelCoords, mapCoords);  accept();}void MapCoordsDialog::on_buttonCancel_clicked(){  reject();}void MapCoordsDialog::setXY(QgsPoint & xy){  leXCoord->clear();  leYCoord->clear();  leXCoord->insert(QString::number(xy.x(),'f',7));  leYCoord->insert(QString::number(xy.y(),'f',7));    mQgisCanvas->setMapTool(mPrevMapTool);}void MapCoordsDialog::on_btnPointFromCanvas_clicked(){  mPrevMapTool = mQgisCanvas->mapTool();  mQgisCanvas->setMapTool(mToolEmitPoint);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -