添加读取所有航点功能

This commit is contained in:
hm
2022-05-06 17:53:06 +08:00
parent e5a843d8ab
commit 4176bde466
7 changed files with 142 additions and 51 deletions
+58 -11
View File
@@ -309,7 +309,9 @@ void MissionUI::on_tabWidget_currentChanged(int index)
break;
}
//emit groupChanged(group);
qDebug() << "currentChanged" << group;
emit groupChanged(group);
QTableWidget *widget = tablelist.value(group);
int idx = widget->currentRow() + 1;
@@ -356,8 +358,32 @@ void MissionUI::on_pushButton_insert_clicked()
{
emit WPInsert();
int group = 3;
//根据tabwidget
int tab_idx =ui->tabWidget->currentIndex();
switch (tab_idx) {
case 0:
group = 1;
break;
case 1:
group = 3;
break;
case 2:
group = 4;
break;
case 3:
group = 5;
break;
case 4:
group = 6;
break;
default:
break;
}
//删除完成后,刷新一次所有航点
emit getAllPoints();
emit getAllPoints(group);
}
void MissionUI::on_pushButton_delete_clicked()
@@ -393,7 +419,7 @@ void MissionUI::on_pushButton_delete_clicked()
emit WPDelete();
//删除完成后,刷新一次所有航点
emit getAllPoints();
emit getAllPoints(tablelist.key(widget));
}
@@ -401,8 +427,32 @@ void MissionUI::on_pushButton_add_clicked()
{
emit WPAdd();
//删除完成后,刷新一次所有航点
emit getAllPoints();
int group = 3;
//根据tabwidget
int tab_idx =ui->tabWidget->currentIndex();
switch (tab_idx) {
case 0:
group = 1;
break;
case 1:
group = 3;
break;
case 2:
group = 4;
break;
case 3:
group = 5;
break;
case 4:
group = 6;
break;
default:
break;
}
//刷新一次所有航点
emit getAllPoints(group);
}
void MissionUI::on_pushButton_clean_clicked()
@@ -431,14 +481,15 @@ void MissionUI::on_pushButton_clean_clicked()
break;
}
for (int i = 0;i < widget->rowCount();i++) {
int count = widget->rowCount();
for (int i = 0;i < count;i++) {
widget->removeRow(i);
}
emit WPDeleteAll();
//删除完成后,刷新一次所有航点
emit getAllPoints();
//emit getAllPoints(tablelist.key(widget));
}
@@ -566,11 +617,7 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item)
{
QLineEdit *line = new QLineEdit(widget);
line->setStyleSheet("background-color: #FFFFFF;font :15px 黑体;");
//line->setValidator(new QRegExpValidator(QRegExp("[0-9.-]+$")));
line->setText(itemValue.toString());
widget->removeCellWidget(row,column);
widget->setCellWidget(row,column,line);
+1 -1
View File
@@ -96,7 +96,7 @@ signals:
void waypointSelect(int group,int idx);
void getAllPoints(void);//读取一下所有的航点
void getAllPoints(int group);//读取一下所有的航点
private:
Ui::MissionUI *ui;
+6
View File
@@ -164,6 +164,8 @@ propertyui::propertyui(QWidget *parent) :
connect(this,&propertyui::settableGroup,
table,&MissionUI::settableGroup);
connect(table,&MissionUI::getAllPoints,
this,&propertyui::getAllPoints);
//初始化参数
@@ -2110,8 +2112,12 @@ void propertyui::on_pushButton_Delete_clicked()
void propertyui::waypointSelect(int group,int idx)
{
//读取这个值得航点
//这个不够稳定
GroupChanged(group);
//先换组,再切点
emit WPotherPoint(idx);
}
+1
View File
@@ -258,6 +258,7 @@ Q_SIGNALS:
void settableGroup(int);
void getAllPoints(int group);
private slots:
+6
View File
@@ -411,6 +411,12 @@ MainWindow::MainWindow(QWidget *parent)
connect(missionUI,SIGNAL(searchall()),
map,SLOT(WPsearchall()));
connect(missionUI,SIGNAL(getAllPoints(int)),
map,SLOT(getAllPoints(int)));
//dlink ----- map
connect(map,SIGNAL(signal_WPDownload(uint8_t,uint8_t,int)),
dlink->mavlinknode->Mission,SLOT(ReadCmd(uint8_t,uint8_t,int)),Qt::DirectConnection);
+69 -39
View File
@@ -921,6 +921,7 @@ int OPMapWidget::getWaypointSize(int group)
void OPMapWidget::WPInsert()
{
bool isExist = false;
//获取位置和组号
int position = 0;
int group = 3;
@@ -930,12 +931,23 @@ void OPMapWidget::WPInsert()
if (w) {
if (w->isSelected()) {
position = w->Number();
group = w->MissionType();
if(currentGroup == w->MissionType())
{
position = w->Number();
group = w->MissionType();
isExist = true;
break;
}
}
}
}
if(isExist == false)//没有选中的点
{
return;
}
//刷新全部连线,目前连线很乱
internals::PointLatLng latlng;
@@ -1125,52 +1137,43 @@ void OPMapWidget::WPDelete(void)
int number = 0;
int group = 3;
foreach(QGraphicsItem * i, map->childItems()) {
WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i);
foreach(QGraphicsItem * i, map->childItems()) {
WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i);
if (w) {
if (w->isSelected()) {
if (w) {
if (w->isSelected()) {
number = w->Number();
group = w->MissionType();
emit WPDeleted(w->Number(), w);//这个会修改编号
delete w;
}
number = w->Number();
group = w->MissionType();
emit WPDeleted(w->Number(), w);//这个会修改编号
delete w;
}
}
}
//当前选中为上一点
WayPointItem *item = WPFind(group,number -1);
if(item)
{
setSelectedWP(item);
item->emitWPProperty();
//当前选中为上一点
WayPointItem *item = WPFind(group,number -1);
if(item)
{
setSelectedWP(item);
item->emitWPProperty();
WayPointItem *item_next = WPFind(group,number);
if (item_next) {
WPLineCreate(item,item_next,Qt::green,false,2);
}
}
else
{
WayPointItem *ww = WPFind(group,number);
if(ww)
{
setSelectedWP(ww);
ww->emitWPProperty();
}
WayPointItem *item_next = WPFind(group,number);
if (item_next) {
WPLineCreate(item,item_next,Qt::green,false,2);
}
/*
foreach(QGraphicsItem * i, map->childItems()) {
WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i);
if (w) {
WPFollowPrevious(w->FollowPrevious(),w);
}
}
*/
}
else
{
WayPointItem *ww = WPFind(group,number);
if(ww)
{
setSelectedWP(ww);
ww->emitWPProperty();
}
}
}
WayPointItem *OPMapWidget::WPFind(int group,int number)
@@ -2532,5 +2535,32 @@ void OPMapWidget::find_PointNumber()
emit PointNumber(nums);
}
void OPMapWidget::getAllPoints(int group)
{
QMap<int,WayPointItem *> points;
points.clear();
foreach(QGraphicsItem * i, map->childItems()) {
WayPointItem *w = qgraphicsitem_cast<WayPointItem *>(i);
if (w)
{
if(w->MissionType() == group)
{
points.insert(w->Number(),w);
}
}
}
QMapIterator<int,WayPointItem *> iter(points);
while (iter.hasNext()) {
iter.next();
WayPointItem *Item = iter.value();
Item->emitWPProperty();
}
}
}
+1
View File
@@ -634,6 +634,7 @@ signals:
public slots:
void getAllPoints(int group);
void groupchanged(int value);