diff --git a/App/GCS_zh_CN.ts b/App/GCS_zh_CN.ts index b1aa54e..6c403e7 100644 --- a/App/GCS_zh_CN.ts +++ b/App/GCS_zh_CN.ts @@ -2873,32 +2873,32 @@ 起飞 - + number 航点 - + command 类型 - + par1 参数1 - + par2 参数2 - + par3 参数3 - + par4 参数4 @@ -2927,19 +2927,19 @@ 经度 - + group 组别 - - - - - - - - + + + + + + + + inclusion 安控区 @@ -2957,40 +2957,40 @@ - - - - - - + + + + + + Circle 圆形 - - - - - - - + + + + + + + exclusion 禁飞区 - - - - - - - + + + + + + + Polygon 多边形 - + shape 形状 @@ -2999,80 +2999,85 @@ 点数(个)/半径(米) - - + + lat(deg) 纬度(度) - - + + lng(deg) 经度(度) - + Polygon(num) Circle(radius) 点数(多边形) 半径(圆形) - + + points + + + + alt(m) 海拔(米) - - + + 航点 - - + + 返航 - - + + 降落 - - + + 起飞 - - + + 保持 - - + + 表速 - - + + 快升 - - + + 开加力 - - + + 关加力 diff --git a/App/MissionUI/MissionUI.cpp b/App/MissionUI/MissionUI.cpp index bea7dd5..752f78f 100644 --- a/App/MissionUI/MissionUI.cpp +++ b/App/MissionUI/MissionUI.cpp @@ -17,6 +17,8 @@ MissionUI::MissionUI(QWidget *parent) : this->setStyleSheet(stylesheet); file.close(); + this->setWhatsThis(tr("mission table")); + //围栏编辑 CustomButton *btn_addCircle = new CustomButton(this); CustomButton *btn_addPolygon = new CustomButton(this); @@ -134,6 +136,7 @@ MissionUI::MissionUI(QWidget *parent) : widget = tablelist.value(6); break; default: + return; break; } @@ -230,6 +233,7 @@ MissionUI::MissionUI(QWidget *parent) : widget = tablelist.value(6); break; default: + return; break; } int idx = widget->currentRow(); @@ -264,6 +268,7 @@ MissionUI::MissionUI(QWidget *parent) : widget = tablelist.value(6); break; default: + return; break; } @@ -325,7 +330,7 @@ MissionUI::MissionUI(QWidget *parent) : { if(tablelist.key(table) == 1)//围栏 { - table->setColumnCount(6); //设置列数为7 + table->setColumnCount(7); //设置列数为7 table->setGeometry(QRect(10,455,740,95)); //设置tableWidget的大小 table->setSelectionBehavior(QAbstractItemView::SelectRows);//设置选中模式为选中行 table->setSelectionMode ( QAbstractItemView::SingleSelection); //设置选择模式,选择单行 @@ -340,11 +345,12 @@ MissionUI::MissionUI(QWidget *parent) : table->setColumnWidth(1,80); //设置第1列的列宽(type) table->setColumnWidth(2,180); //设置第2列的列宽(par1) table->setColumnWidth(3,80); //设置第3列的列宽(inclusion) - table->setColumnWidth(4,150); //设置第4列的列宽(lat) - table->setColumnWidth(5,150); //设置第5列的列宽(lng) + table->setColumnWidth(4,80); //设置第3列的列宽(inclusion) + table->setColumnWidth(5,150); //设置第4列的列宽(lat) + table->setColumnWidth(6,150); //设置第5列的列宽(lng) - table->setHorizontalHeaderLabels(QStringList() <setHorizontalHeaderLabels(QStringList() <verticalHeader(); V_headerView->setHidden(true); //行名隐藏 @@ -430,37 +436,76 @@ MissionUI::MissionUI(QWidget *parent) : group = 6; break; default: + break; } if(index == 0) { + btn_addCircle->setEnabled(true); + btn_addPolygon->setEnabled(true); + + btn_load->setEnabled(true); + btn_save->setEnabled(true); + btn_upload->setEnabled(true); + btn_download->setEnabled(true); + btn_insert->setEnabled(true); + btn_delete->setEnabled(true); + btn_clean->setEnabled(true); + btn_add->setEnabled(true); + btn_addCircle->show(); btn_addPolygon->show(); - //btn_load->hide(); - //btn_save->hide(); - //btn_upload->hide(); - //btn_download->hide(); + btn_load->show(); + btn_save->show(); + btn_upload->show(); + btn_download->show(); btn_insert->hide(); - //btn_delete->hide(); + btn_delete->show(); btn_clean->hide(); btn_add->hide(); } - else + else if(index <= 4) { + btn_addCircle->setEnabled(true); + btn_addPolygon->setEnabled(true); + + btn_load->setEnabled(true); + btn_save->setEnabled(true); + btn_upload->setEnabled(true); + btn_download->setEnabled(true); + btn_insert->setEnabled(true); + btn_delete->setEnabled(true); + btn_clean->setEnabled(true); + btn_add->setEnabled(true); + btn_addCircle->hide(); btn_addPolygon->hide(); - //btn_load->show(); - //btn_save->show(); - //btn_upload->show(); - //btn_download->show(); + btn_load->show(); + btn_save->show(); + btn_upload->show(); + btn_download->show(); btn_insert->show(); - //btn_delete->show(); + btn_delete->show(); btn_clean->show(); btn_add->show(); } + else + { + btn_addCircle->setEnabled(false); + btn_addPolygon->setEnabled(false); + + btn_load->setEnabled(false); + btn_save->setEnabled(false); + btn_upload->setEnabled(false); + btn_download->setEnabled(false); + btn_insert->setEnabled(false); + btn_delete->setEnabled(false); + btn_clean->setEnabled(false); + btn_add->setEnabled(false); + } QTableWidget *widget = tablelist.value(group); @@ -529,10 +574,13 @@ void MissionUI::createFenceCircle(int group,qreal radius,bool inclusion,qreal la tableWidget->setItem(idx,3,item3); tableWidget->removeCellWidget(idx,4); - tableWidget->setItem(idx,4,new QTableWidgetItem(QString::number(lat ,'f',7))); + tableWidget->setItem(idx,4,new QTableWidgetItem(QString::number(1))); tableWidget->removeCellWidget(idx,5); - tableWidget->setItem(idx,5,new QTableWidgetItem(QString::number(lng ,'f',7))); + tableWidget->setItem(idx,5,new QTableWidgetItem(QString::number(lat ,'f',7))); + + tableWidget->removeCellWidget(idx,6); + tableWidget->setItem(idx,6,new QTableWidgetItem(QString::number(lng ,'f',7))); for (int i = 0;irowCount();i++) @@ -555,6 +603,8 @@ void MissionUI::createFencePolygon(int group,qreal vertex, bool inclusion, QList return; } + int count = 1; + int startIndex = tableWidget->rowCount(); for(QPointF p:latlng) { @@ -593,10 +643,13 @@ void MissionUI::createFencePolygon(int group,qreal vertex, bool inclusion, QList tableWidget->setItem(idx,3,item3); tableWidget->removeCellWidget(idx,4); - tableWidget->setItem(idx,4,new QTableWidgetItem(QString::number(lat ,'f',7))); + tableWidget->setItem(idx,4,new QTableWidgetItem(QString::number(count++))); tableWidget->removeCellWidget(idx,5); - tableWidget->setItem(idx,5,new QTableWidgetItem(QString::number(lng ,'f',7))); + tableWidget->setItem(idx,5,new QTableWidgetItem(QString::number(lat ,'f',7))); + + tableWidget->removeCellWidget(idx,6); + tableWidget->setItem(idx,6,new QTableWidgetItem(QString::number(lng ,'f',7))); } int endIndex = tableWidget->rowCount(); @@ -669,10 +722,13 @@ void MissionUI::updateFenceCircle(int group,qreal radius, bool inclusion, qreal tableWidget->setItem(row_id,3,item3); tableWidget->removeCellWidget(row_id,4); - tableWidget->setItem(row_id,4,new QTableWidgetItem(QString::number(lat ,'f',7))); + tableWidget->setItem(row_id,4,new QTableWidgetItem(QString::number(1))); tableWidget->removeCellWidget(row_id,5); - tableWidget->setItem(row_id,5,new QTableWidgetItem(QString::number(lng ,'f',7))); + tableWidget->setItem(row_id,5,new QTableWidgetItem(QString::number(lat ,'f',7))); + + tableWidget->removeCellWidget(row_id,6); + tableWidget->setItem(row_id,6,new QTableWidgetItem(QString::number(lng ,'f',7))); } void MissionUI::updateFencePolygon(int group,qreal vertex,bool inclusion,QList latlng) @@ -723,6 +779,7 @@ void MissionUI::updateFencePolygon(int group,qreal vertex,bool inclusion,QListinsertRow(endIndex);//减少行 } + int count = 1; int idx = startIndex; for(QPointF p:latlng) { @@ -758,10 +815,13 @@ void MissionUI::updateFencePolygon(int group,qreal vertex,bool inclusion,QListsetItem(idx,3,item3); tableWidget->removeCellWidget(idx,4); - tableWidget->setItem(idx,4,new QTableWidgetItem(QString::number(lat ,'f',7))); + tableWidget->setItem(idx,4,new QTableWidgetItem(QString::number(count++))); tableWidget->removeCellWidget(idx,5); - tableWidget->setItem(idx,5,new QTableWidgetItem(QString::number(lng ,'f',7))); + tableWidget->setItem(idx,5,new QTableWidgetItem(QString::number(lat ,'f',7))); + + tableWidget->removeCellWidget(idx,6); + tableWidget->setItem(idx,6,new QTableWidgetItem(QString::number(lng ,'f',7))); idx++; } @@ -1049,8 +1109,8 @@ void MissionUI::itemClicked(QTableWidgetItem *item) if(type == tr("Circle")) { - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 @@ -1063,8 +1123,8 @@ void MissionUI::itemClicked(QTableWidgetItem *item) for(int i = StartIdx;i<(StartIdx + SpanCount);i++) { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); latlng.push_back(QPointF(latitude,longitude)); } @@ -1130,8 +1190,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) qreal par = widget->item(StartIdx,2)->data(Qt::DisplayRole).toDouble();//得到par bool inclusion = widget->item(StartIdx,3)->checkState()?(true):(false); - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 } @@ -1217,11 +1277,11 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) { bool inclusion = widget->item(startIndex,3)->checkState()?(true):(false); - qreal lat1 = widget->item(startIndex + 1,4)->data(Qt::DisplayRole).toDouble(); - qreal lng1 = widget->item(startIndex + 1,5)->data(Qt::DisplayRole).toDouble(); + qreal lat1 = widget->item(startIndex + 1,5)->data(Qt::DisplayRole).toDouble(); + qreal lng1 = widget->item(startIndex + 1,6)->data(Qt::DisplayRole).toDouble(); - qreal lat2 = widget->item(startIndex,4)->data(Qt::DisplayRole).toDouble(); - qreal lng2 = widget->item(startIndex,5)->data(Qt::DisplayRole).toDouble(); + qreal lat2 = widget->item(startIndex,5)->data(Qt::DisplayRole).toDouble(); + qreal lng2 = widget->item(startIndex,6)->data(Qt::DisplayRole).toDouble(); qreal lat = (lat1 +lat2)/2.0; @@ -1258,12 +1318,27 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) widget->removeCellWidget(endIndex - 1,3); widget->setItem(endIndex - 1,3,item3); - widget->removeCellWidget(endIndex - 1,4); - widget->setItem(endIndex - 1,4,new QTableWidgetItem(QString::number(lat ,'f',7))); + //widget->removeCellWidget(endIndex - 1,4); + //widget->setItem(endIndex - 1,4,new QTableWidgetItem(QString::number(count))); widget->removeCellWidget(endIndex - 1,5); - widget->setItem(endIndex - 1,5,new QTableWidgetItem(QString::number(lng ,'f',7))); + widget->setItem(endIndex - 1,5,new QTableWidgetItem(QString::number(lat ,'f',7))); + + widget->removeCellWidget(endIndex - 1,6); + widget->setItem(endIndex - 1,6,new QTableWidgetItem(QString::number(lng ,'f',7))); } + + + //重新更新一下count + int len = widget->rowSpan(row,0); + int sIndex = startIndex; + for(int i = 1;i<=len;i++) + { + widget->removeCellWidget(sIndex,4); + widget->setItem(sIndex++,4,new QTableWidgetItem(QString::number(i))); + } + + } else if(newVertex < oldVertex)//减少 { @@ -1281,8 +1356,6 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) } - - int gidx = widget->item(row,0)->data(Qt::DisplayRole).toInt();//得到group //找到开始的idx int StartIdx = widget->item(row,0)->row(); @@ -1307,8 +1380,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) for(int i = StartIdx;i<(StartIdx + SpanCount);i++) { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); latlng.push_back(QPointF(latitude,longitude)); } @@ -1350,8 +1423,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) if(type == tr("Circle")) { - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 @@ -1364,8 +1437,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) for(int i = StartIdx;i<(StartIdx + SpanCount);i++) { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); latlng.push_back(QPointF(latitude,longitude)); } @@ -1374,70 +1447,6 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) } } - else if(column == 4) - { - QLineEdit *line = new QLineEdit(widget); - line->setStyleSheet("background-color: #FFFFFF;font :15px 黑体;"); - line->setText(item->data(Qt::DisplayRole).toString()); - widget->removeCellWidget(row,column); - widget->setCellWidget(row,column,line); - - connect(line,&QLineEdit::editingFinished,[=](){ - if(line) - { - QString str = line->text(); - bool ok = false; - str.toDouble(&ok); - if(ok) - { - widget->removeCellWidget(row,column); - item->setText(str); - } - - int gidx = widget->item(row,0)->data(Qt::DisplayRole).toInt();//得到group - //找到开始的idx - int StartIdx = widget->item(row,0)->row(); - for (int i = 0; i < widget->rowCount(); ++i) { - if(widget->item(i,0)->data(Qt::DisplayRole).toInt() == gidx) - { - StartIdx = i; - break; - } - } - - int SpanCount = widget->rowSpan(row,0); - - QString type = widget->item(StartIdx,1)->data(Qt::DisplayRole).toString();//得到type - qreal par = widget->item(StartIdx,2)->data(Qt::DisplayRole).toDouble();//得到par - bool inclusion = widget->item(StartIdx,3)->checkState()?(true):(false); - - if(type == tr("Circle")) - { - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); - - emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 - - } - else if(type == tr("Polygon")) - { - //从头获取所有点 - QList latlng; - latlng.clear(); - - for(int i = StartIdx;i<(StartIdx + SpanCount);i++) - { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); - - latlng.push_back(QPointF(latitude,longitude)); - } - - emit setFencePolygon(gidx,par,inclusion,latlng); - } - } - }); - } else if(column == 5) { QLineEdit *line = new QLineEdit(widget); @@ -1446,6 +1455,70 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) widget->removeCellWidget(row,column); widget->setCellWidget(row,column,line); + connect(line,&QLineEdit::editingFinished,[=](){ + if(line) + { + QString str = line->text(); + bool ok = false; + str.toDouble(&ok); + if(ok) + { + widget->removeCellWidget(row,column); + item->setText(str); + } + + int gidx = widget->item(row,0)->data(Qt::DisplayRole).toInt();//得到group + //找到开始的idx + int StartIdx = widget->item(row,0)->row(); + for (int i = 0; i < widget->rowCount(); ++i) { + if(widget->item(i,0)->data(Qt::DisplayRole).toInt() == gidx) + { + StartIdx = i; + break; + } + } + + int SpanCount = widget->rowSpan(row,0); + + QString type = widget->item(StartIdx,1)->data(Qt::DisplayRole).toString();//得到type + qreal par = widget->item(StartIdx,2)->data(Qt::DisplayRole).toDouble();//得到par + bool inclusion = widget->item(StartIdx,3)->checkState()?(true):(false); + + if(type == tr("Circle")) + { + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); + + emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 + + } + else if(type == tr("Polygon")) + { + //从头获取所有点 + QList latlng; + latlng.clear(); + + for(int i = StartIdx;i<(StartIdx + SpanCount);i++) + { + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); + + latlng.push_back(QPointF(latitude,longitude)); + } + + emit setFencePolygon(gidx,par,inclusion,latlng); + } + } + }); + } + else if(column == 6) + { + QLineEdit *line = new QLineEdit(widget); + line->setStyleSheet("background-color: #FFFFFF;font :15px 黑体;"); + line->setText(item->data(Qt::DisplayRole).toString()); + widget->removeCellWidget(row,column); + widget->setCellWidget(row,column,line); + connect(line,&QLineEdit::editingFinished,[=](){ if(line) { @@ -1478,8 +1551,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) if(type == tr("Circle")) { - qreal latitude = widget->item(row,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(row,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(row,6)->data(Qt::DisplayRole).toDouble(); emit setFenceCircle(gidx,par,inclusion,latitude,longitude);//修改圆形 @@ -1492,8 +1565,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item) for(int i = StartIdx;i<(StartIdx + SpanCount);i++) { - qreal latitude = widget->item(i,4)->data(Qt::DisplayRole).toDouble(); - qreal longitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal latitude = widget->item(i,5)->data(Qt::DisplayRole).toDouble(); + qreal longitude = widget->item(i,6)->data(Qt::DisplayRole).toDouble(); latlng.push_back(QPointF(latitude,longitude)); } diff --git a/App/MissionUI/MissionUI.ui b/App/MissionUI/MissionUI.ui index 4c36ff0..893a0f4 100644 --- a/App/MissionUI/MissionUI.ui +++ b/App/MissionUI/MissionUI.ui @@ -20,7 +20,7 @@ - 4 + 5 @@ -155,6 +155,11 @@ + + + Notice + + diff --git a/opmap/MAP_zh_CN.qm b/opmap/MAP_zh_CN.qm index 57cb591..36c725f 100644 Binary files a/opmap/MAP_zh_CN.qm and b/opmap/MAP_zh_CN.qm differ diff --git a/opmap/MAP_zh_CN.ts b/opmap/MAP_zh_CN.ts index 0358bd8..d96b48a 100644 --- a/opmap/MAP_zh_CN.ts +++ b/opmap/MAP_zh_CN.ts @@ -78,72 +78,82 @@ Please first select the area of the map to rip with <CTRL>+Left mouse clic mapcontrol::OPMapWidget - + .plan - + + start rip map + 开始缓存地图 + + + + stop rip map + 停止缓存地图 + + + Load Geo Fence File :%1 导入围栏文件:%1 - + Load Mission File:Group %1,%2 导入航线文件:第%1组航线,%2 - + Save Fence File:%1 保存围栏文件:%1 - + Save Mission File:Group %1,%2 保存航线文件:第%1组航线,%2 - + please load fence first 请先导入围栏 - + start upload fence,total:%1 开始上传围栏,总数%1 - + please load mission first 请先导入航线 - + start upload mission %1,total %2 开始上传航线%1,总数%2 - + upload fail %1 上传失败 %1 - + recieve fence polygon inclusion: %1 接收到多边形安控区 :%1 - + recieve fence polygon exclusion: %1 接收到多边形禁飞区 :%1 - + recieve fence circle inclusion: %1 接收到圆形安控区 :%1 - + recieve fence circle exclusion: %1 接收到圆形禁飞区 :%1 @@ -152,7 +162,7 @@ Please first select the area of the map to rip with <CTRL>+Left mouse clic 围栏 - + recieve way point group:%1 seq:%2 收到航点:第%1组,第%2点 @@ -331,25 +341,63 @@ Ma:%2 组别 - - + + + AirCraft + 飞机信息 + + + + Show +AirCraft + ShowAirCraft + 显示 +飞机信息 + + + + show UAV Tip + 显示无人机标签 + + + + hide UAV Tip + 隐藏无人机标签 + + + + + Tip - 标签 + 航点信息 - - ShowTip - 显示标签 + + Show +Tip + ShowTip + 显示 +航点信息 - - + + show mission Tip + 显示任务标签 + + + + hide mission Tip + 隐藏任务标签 + + + + Measure 测量 - + Table 航线 @@ -358,7 +406,7 @@ Ma:%2 选择一个航线文件... - + Measuring 测量中 diff --git a/opmap/mapwidget/geoFenceitem.cpp b/opmap/mapwidget/geoFenceitem.cpp index ab55a97..fec3900 100644 --- a/opmap/mapwidget/geoFenceitem.cpp +++ b/opmap/mapwidget/geoFenceitem.cpp @@ -72,21 +72,29 @@ void geoFenceitem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti QPolygonF poly = polygon(); - int count = 0; + int count = 1; for(QPointF p:poly) { + //画个小圆 painter->save(); + painter->setOpacity(0.8); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor("#FFFFFF")); + painter->drawEllipse(p,10,10); + painter->restore(); + //画字 + painter->save(); + painter->setOpacity(1); font.setWeight(QFont::ExtraBold); font.setFamily("Arial");//非衬线 font.setPixelSize(15); painter->setFont(font); myPen.setWidth(1); - myPen.setColor(QColor("#FFFFFF")); + myPen.setColor(QColor("#000000")); painter->setPen(myPen); painter->drawText(QRect(p.x() - 20,p.y()-5,40,10),Qt::AlignCenter,QString::number(count++)); - painter->restore(); } diff --git a/opmap/mapwidget/opmapwidget.cpp b/opmap/mapwidget/opmapwidget.cpp index cfd34d5..8a02cd8 100644 --- a/opmap/mapwidget/opmapwidget.cpp +++ b/opmap/mapwidget/opmapwidget.cpp @@ -94,7 +94,8 @@ OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config) : QGraphicsView waypointsetting = new WayPointSetting(map,QColor("#a39d9c")); mscene.addItem(waypointsetting); - waypointsetting->hide(); + waypointsetting->setMode(1); + //waypointsetting->hide(); // WPnearPoint diff --git a/opmap/mapwidget/waypointsetting.cpp b/opmap/mapwidget/waypointsetting.cpp index 3e97c4f..1df42ed 100644 --- a/opmap/mapwidget/waypointsetting.cpp +++ b/opmap/mapwidget/waypointsetting.cpp @@ -18,8 +18,10 @@ WayPointSetting::WayPointSetting(MapGraphicItem *map, QColor background) : myMap showMode = 0; - rect.setX(0); - rect.setY(0); + rect.setLeft(0); + rect.setTop(0); + //rect.setX(0); + //rect.setY(0); rect.setWidth(100); rect.setHeight(370); @@ -138,7 +140,7 @@ WayPointSetting::WayPointSetting(MapGraphicItem *map, QColor background) : myMap { if(btn_aircraft->Text() == tr("AirCraft")) { - btn_aircraft->setText(tr("ShowAirCraft")); + btn_aircraft->setText(tr("Show\nAirCraft")); emit UAVShowTip(true); emit showMessage(tr("show UAV Tip")); } @@ -159,7 +161,7 @@ WayPointSetting::WayPointSetting(MapGraphicItem *map, QColor background) : myMap { if(btn_tip->Text() == tr("Tip")) { - btn_tip->setText(tr("ShowTip")); + btn_tip->setText(tr("Show\nTip")); emit WPShowTip(true); emit showMessage(tr("show mission Tip")); } @@ -197,7 +199,10 @@ WayPointSetting::WayPointSetting(MapGraphicItem *map, QColor background) : myMap QRectF WayPointSetting::boundingRect() const //鼠标可以操作的大小 { + qDebug() << rect; return rect; + + //return QRectF(0,0,100,370); } void WayPointSetting::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)