海拔的相对绝对参数引到界面

This commit is contained in:
hm
2022-12-07 12:26:05 +05:30
parent 846978ffd2
commit 9fd6349a9d
3 changed files with 99 additions and 7 deletions
+67 -7
View File
@@ -341,7 +341,11 @@ MissionUI::MissionUI(QWidget *parent) :
{
if(tablelist.key(table) == 1)//围栏
{
table->setColumnCount(7); //设置列数为7
QStringList tabletitle;
tabletitle << tr("group") << tr("shape") <<tr("Polygon(num)\nCircle(radius)")<<tr("inclusion")<<tr("points")<<tr("lat(deg)")<<tr("lng(deg)");
table->setColumnCount(tabletitle.size()); //设置列数为7
table->setGeometry(QRect(10,455,740,95)); //设置tableWidget的大小
table->setSelectionBehavior(QAbstractItemView::SelectRows);//设置选中模式为选中行
table->setSelectionMode ( QAbstractItemView::SingleSelection); //设置选择模式,选择单行
@@ -361,7 +365,7 @@ MissionUI::MissionUI(QWidget *parent) :
table->setColumnWidth(6,150); //设置第5列的列宽(lng)
table->setHorizontalHeaderLabels(QStringList() <<tr("group") << tr("shape") <<tr("Polygon(num)\nCircle(radius)")<<tr("inclusion")<<tr("points")<<tr("lat(deg)")<<tr("lng(deg)"));
table->setHorizontalHeaderLabels(tabletitle);
QHeaderView* V_headerView = table->verticalHeader();
V_headerView->setHidden(true); //行名隐藏
@@ -382,7 +386,10 @@ MissionUI::MissionUI(QWidget *parent) :
}
else
{
table->setColumnCount(9); //设置列数为7
QStringList tabletitle;
tabletitle <<tr("number")<<tr("command")<<tr("par1")<<tr("par2")<<tr("par3")<<tr("par4")<<tr("lat(deg)")<<tr("lng(deg)")<<tr("alt(m)")<<tr("frame");
table->setColumnCount(tabletitle.size()); //设置列数为10
table->setGeometry(QRect(10,455,740,95)); //设置tableWidget的大小
table->setSelectionBehavior(QAbstractItemView::SelectRows);//设置选中模式为选中行
table->setSelectionMode ( QAbstractItemView::SingleSelection); //设置选择模式,选择单行
@@ -394,7 +401,7 @@ MissionUI::MissionUI(QWidget *parent) :
table->setStyleSheet("QTableWidget::item:selected { background-color: rgb(85, 255, 127); color: rgb(255, 255, 255); } ");
table->setColumnWidth(0,45); //设置第一列的列宽(num)
table->setColumnWidth(1,180); //设置第二列的列宽(cmd)
table->setColumnWidth(1,180); //设置第二列的列宽(cmd)
table->setColumnWidth(2,80); //设置第三列的列宽(par1)
table->setColumnWidth(3,80); //设置第四列的列宽(par2)
table->setColumnWidth(4,80); //设置第五列的列宽(par3)
@@ -402,9 +409,10 @@ MissionUI::MissionUI(QWidget *parent) :
table->setColumnWidth(6,150); //设置第七列的列宽(lat)
table->setColumnWidth(7,150); //设置第八列的列宽(lng)
table->setColumnWidth(8,80); //设置第九列的列宽(alt)
table->setColumnWidth(9,80); //设置第九列的列宽(frame)
table->setHorizontalHeaderLabels(QStringList() <<tr("number")<<tr("command")<<tr("par1")<<tr("par2")<<tr("par3")<<tr("par4")<<tr("lat(deg)")<<tr("lng(deg)")<<tr("alt(m)"));
table->setHorizontalHeaderLabels(tabletitle);
QHeaderView* V_headerView = table->verticalHeader();
V_headerView->setHidden(true); //行名隐藏
@@ -957,7 +965,6 @@ void MissionUI::pointCreate(float param1,float param2,float param3,float param4,
}
int idx = seq -1;
qDebug() << u8"组别:" << mission_type;
tableWidget->setRowCount(tableWidget->rowCount()+1); //设置行数+1
tableWidget->setItem(idx,0,new QTableWidgetItem(QString::number(seq) ) ); //第一列的内容设置为index
@@ -1040,6 +1047,23 @@ void MissionUI::pointCreate(float param1,float param2,float param3,float param4,
tableWidget->removeCellWidget(idx,8);
tableWidget->setItem(idx,8,new QTableWidgetItem(QString::number(z)));
QString frameName;
if(frametext.contains(frame))
{
frameName = frametext.value(frame);
}
else
{
frameName = tr("unknow");
}
tableWidget->removeCellWidget(idx,9);
tableWidget->setItem(idx,9,new QTableWidgetItem(frameName));
for (int i = 0;i<tableWidget->rowCount();i++)
{
if(tableWidget->item(i,0)==NULL|| //判断指向该cell的指针是否为空
@@ -1743,6 +1767,8 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item)
emit setParam1(str);
});
}
}
qDebug() << "clicked" << row << column << itemValue << ok;
@@ -1901,7 +1927,41 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item)
}
else//不能转成数字
{
qDebug() << "input error";
if(column == 9)
{
QComboBox *combox = new QComboBox(widget);
combox->installEventFilter(this);
for (QMap<int,QString>::iterator i = frametext.begin(); i != frametext.end(); ++i)
{
combox->addItem(i.value(),i.key());
}
combox->setCurrentIndex(combox->findText(itemValue.toString()));
combox->setStyleSheet("background-color: #FFFFFF;font :15px 黑体;");
widget->removeCellWidget(row,column);
widget->setCellWidget(row,column,combox);
connect(this, &MissionUI::comboBoxFocusOut, this, [=]
{
widget->removeCellWidget(row,column); //删除QComboBox
});
connect(combox,&QComboBox::currentTextChanged,[=]{
QString str = combox->currentText();
// widget->removeCellWidget(row,column);
qDebug() << u8"cmmand发送信号";
emit setFrame(str);//直接修改底层,让底层返回数据更新到界面
});
connect(combox,&QComboBox::editTextChanged,[=]{
QString str = combox->currentText();
// widget->removeCellWidget(row,column);
qDebug() << u8"cmmand发送信号";
emit setFrame(str);//直接修改底层,让底层返回数据更新到界面
});
}
}
}
}
+27
View File
@@ -40,6 +40,31 @@ public:
};
QMap<int,QString> frametext = {
{0,tr("MAV_FRAME_GLOBAL")},
{1,tr("MAV_FRAME_LOCAL_NED")},
{2,tr("MAV_FRAME_MISSION")},
{3,tr("MAV_FRAME_GLOBAL_RELATIVE_ALT")},
{4,tr("MAV_FRAME_LOCAL_ENU")},
{5,tr("MAV_FRAME_GLOBAL_INT")},
{6,tr("MAV_FRAME_GLOBAL_RELATIVE_ALT_INT")},
{7,tr("MAV_FRAME_LOCAL_OFFSET_NED")},
{8,tr("MAV_FRAME_BODY_NED")},
{9,tr("MAV_FRAME_BODY_OFFSET_NED")},
{10,tr("MAV_FRAME_GLOBAL_TERRAIN_ALT")},
{11,tr("MAV_FRAME_GLOBAL_TERRAIN_ALT_INT")},
{12,tr("MAV_FRAME_BODY_FRD")},
{13,tr("MAV_FRAME_BODY_FLU")},
{14,tr("MAV_FRAME_MOCAP_NED")},
{15,tr("MAV_FRAME_MOCAP_ENU")},
{16,tr("MAV_FRAME_VISION_NED")},
{17,tr("MAV_FRAME_VISION_ENU")},
{18,tr("MAV_FRAME_ESTIM_NED")},
{19,tr("MAV_FRAME_ESTIM_ENU")},
{20,tr("MAV_FRAME_ENUM_END")},
};
explicit MissionUI(QWidget *parent = nullptr);
@@ -113,6 +138,7 @@ signals:
void comboBoxFocusOut();
void setCommand(QVariant value);
void setFrame(QVariant value);
void setParam1(QVariant value);
void setParam2(QVariant value);
void setParam3(QVariant value);
@@ -122,6 +148,7 @@ signals:
void setParam7(QVariant value);
void WPnearPoint(int dir);
void WPotherPoint(int seq);
+5
View File
@@ -127,6 +127,11 @@ propertyui::propertyui(QWidget *parent) :
connect(table,&MissionUI::setCommand,
this,&propertyui::setFriendlyName);
connect(table,&MissionUI::setFrame,
this,&propertyui::setAltType);
connect(table,&MissionUI::setParam1,
this,&propertyui::setParam1);