Есть программа которая передаёт широту и долготу в "Line Edit"
. Но при этом утрачивается возможность перемещать карту. Как мне сделать так чтоб карта перемещать за мышкой во время события pressAndHold
?
places_map.qml:
import QtQuick 2.0 import QtLocation 5.6 import QtPositioning 5.6 Rectangle { id: rect Plugin { id: mapPlugin name: "osm" // "mapboxgl", "esri", ... // specify plugin parameters if necessary // PluginParameter { // name: // value: // } } Map { id: map anchors.fill: parent plugin: mapPlugin center: QtPositioning.coordinate(59.91, 10.75) // Oslo zoomLevel: 14 } MouseArea{ anchors.fill: parent onClicked: lineEdit.text = ""+ map.toCoordinate(Qt.point(mouse.x,mouse.y)) } }
main.cpp:
#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
mainwindow.cpp:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QQmlContext> #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->quickWidget->rootContext()->setContextProperty("lineEdit", ui->lineEdit); } MainWindow::~MainWindow() { delete ui; }
mainwindow.h:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
48251004.pro :
QT += core gui quickwidgets positioning greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = 48251004 TEMPLATE = app DEFINES += QT_DEPRECATED_WARNINGS SOURCES += \ main.cpp \ mainwindow.cpp HEADERS += \ mainwindow.h FORMS += \ mainwindow.ui RESOURCES += \ resource.qrc