可以添加多条测量线

This commit is contained in:
2022-11-21 12:59:17 +08:00
parent 35901f297f
commit 0a5abdd532
4 changed files with 96 additions and 46 deletions
+19 -18
View File
@@ -281,20 +281,20 @@ propertyui::propertyui(QWidget *parent) :
void propertyui::closeMissionDialog(bool flag)
{
if(flag == true)
{
if(table)
{
table->hide();
}
// if(flag == true)
// {
// if(table)
// {
// table->hide();
// }
if(ruler)
{
emit exitRuler();
ruler->deleteLater();
ruler = nullptr;
}
}
// if(ruler)
// {
// emit exitRuler();
// ruler->deleteLater();
// ruler = nullptr;
// }
// }
}
void propertyui::clearLayout(QLayout *layout)
@@ -1121,10 +1121,10 @@ propertyui::~propertyui()
table->deleteLater();
}
if(ruler)
{
ruler->deleteLater();
}
// if(ruler)
// {
// ruler->deleteLater();
// }
delete ui;
@@ -2308,6 +2308,7 @@ void propertyui::measureState(bool flag)
void propertyui::on_pushButton_Ruler_clicked()
{
/*
if(ruler)
{
ruler->deleteLater();
@@ -2340,7 +2341,7 @@ void propertyui::on_pushButton_Ruler_clicked()
}
*/
}
void propertyui::on_pushButton_Table_clicked()
+1 -1
View File
@@ -422,7 +422,7 @@ private:
Ui::propertyui *ui;
MissionUI *table = nullptr;
RuleDialog *ruler = nullptr;
// RuleDialog *ruler = nullptr;
QByteArray allBytes;
+68 -26
View File
@@ -166,13 +166,13 @@ OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config) : QGraphicsView
point_end.SetLat(1);
point_end.SetLng(1);
measureline = new MeasureLine(point_begin, point_end, map, QColor("#FFFF00"));
mscene.addItem(measureline);
measureline->hide();
// measureline = new MeasureLine(point_begin, point_end, map, QColor("#FFFF00"));
// mscene.addItem(measureline);
// measureline->hide();
connect(measureline,SIGNAL(Lineinfo(qreal,qreal)),
this,SIGNAL(Lineinfo(qreal,qreal)));
// connect(measureline,SIGNAL(Lineinfo(qreal,qreal)),
// this,SIGNAL(Lineinfo(qreal,qreal)));
@@ -219,6 +219,16 @@ void OPMapWidget::dropEvent(QDropEvent *event)
}
}
void OPMapWidget::cleanMeasureLineList()
{
for(int i = 0; i < measureline_list.size(); ++i)
{
measureline_list[i]->deleteLater();
}
measureline_list.clear();
}
void OPMapWidget::cancelSaveMap()
{
if(!mapGrades.empty() )
@@ -262,12 +272,13 @@ void OPMapWidget::ruler_clicked(void)
if(isMeasure)
{
isMeasure = false;
cleanMeasureLineList(); //清除测量线
//this->setCursor(Qt::ArrowCursor);
if(measureline)
{
measureline->hide();
// if(measureline)
// {
// measureline->hide();
}
// }
if(map)
{
@@ -287,10 +298,10 @@ void OPMapWidget::ruler_clicked(void)
isMeasure = true;
measurenumber = 1;//开始记录
if(measureline)
{
measureline->show();
}
// if(measureline)
// {
// measureline->show();
// }
if(map)
{
@@ -409,6 +420,30 @@ void OPMapWidget::NOPTimeout()
}
}
void OPMapWidget::keyReleaseEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Control)
{
is_press_ctrl = false;
}
}
void OPMapWidget::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Control)
{
is_press_ctrl = true;
}
if(event->key() == Qt::Key_M)
{
if(is_press_ctrl)
{
ruler_clicked();
}
}
}
void OPMapWidget::SetCurrentPosition()
{
@@ -668,6 +703,8 @@ OPMapWidget::~OPMapWidget()
rippers[i]->deleteLater();
}
}
cleanMeasureLineList(); //清除测量线
}
void OPMapWidget::closeEvent(QCloseEvent *event)
{
@@ -737,12 +774,13 @@ void OPMapWidget::mouseMoveEvent(QMouseEvent *event)
emit mousePosition(point_end.Lat(),point_end.Lng());
if(measureline)
if(measureline_list.size() )
{
if(measurenumber == 2)//取了第一个点后
{
emit MeasurePosition(measurenumber,point_end.Lat(),point_end.Lng());
measureline->setTo(point_end);
// emit MeasurePosition(measurenumber,point_end.Lat(),point_end.Lng());
// measureline->setTo(point_end);
measureline_list[measureline_list.size() - 1]->setTo(point_end);
}
}
}
@@ -799,13 +837,16 @@ void OPMapWidget::mousePressEvent(QMouseEvent *event)
point_begin = map->FromLocalToLatLng(p.x(), p.y());
emit MeasurePosition(measurenumber,point_begin.Lat(),point_begin.Lng());
// emit MeasurePosition(measurenumber,point_begin.Lat(),point_begin.Lng());
measurenumber ++;
if(measureline)
{
measureline->setFrom(point_begin);
}
MeasureLine *_measureline = new MeasureLine(point_begin, point_end, map, QColor("#FFFF00"));
measureline_list.push_back(_measureline);
// if(measureline)
// {
// measureline->setFrom(point_begin);
// }
}
else
{
@@ -814,13 +855,14 @@ void OPMapWidget::mousePressEvent(QMouseEvent *event)
point_end = map->FromLocalToLatLng(p.x(), p.y());
emit MeasurePosition(measurenumber,point_end.Lat(),point_end.Lng());
// emit MeasurePosition(measurenumber,point_end.Lat(),point_end.Lng());
measurenumber = 1;
measureline_list[measureline_list.size() - 1]->setTo(point_end);
if(measureline)
{
measureline->setTo(point_end);
}
// if(measureline)
// {
// measureline->setTo(point_end);
// }
}
+8 -1
View File
@@ -396,7 +396,7 @@ public:
AltitudeItem *altitudeitem;
WayPointSetting *waypointsetting;
QList<MeasureLine*> measureline_list;
MeasureLine *measureline = nullptr;
int currentGroup = 3;//编辑情况
@@ -471,6 +471,7 @@ public:
private:
bool is_press_ctrl = false; //是否按下ctrl键
//当前正在运行的地图缓存线程
QList<MapRipper *> rippers;
//当前正在运行的地图缓存线程
@@ -538,6 +539,8 @@ private slots:
void NOPTimeout();
protected:
void keyReleaseEvent(QKeyEvent *event) override;
void keyPressEvent(QKeyEvent *event) override;
void resizeEvent(QResizeEvent *event);
void showEvent(QShowEvent *event);
void closeEvent(QCloseEvent *event);
@@ -739,6 +742,10 @@ signals:
public slots:
/**
* @brief 清除测量线
*/
void cleanMeasureLineList();
/**
* @brief 取消缓存地图
*/