修改航点选中,和表格选中问题

This commit is contained in:
hm
2022-05-06 14:34:09 +08:00
parent 8aab14dc74
commit e5a843d8ab
5 changed files with 74 additions and 29 deletions
+42 -17
View File
@@ -50,10 +50,13 @@ MissionUI::MissionUI(QWidget *parent) :
table->setAlternatingRowColors(true);
table->setEditTriggers(QAbstractItemView::NoEditTriggers);//不能编辑
table->setMouseTracking(true);
//table->setFocusPolicy(Qt::NoFocus);
table->setFocus();
table->setFocusPolicy(Qt::StrongFocus);
table->setStyleSheet("QTableWidget::item:selected { background-color: rgb(85, 255, 127); color: rgb(255, 255, 255); } ");
table->setColumnWidth(0,45); //设置第一列的列宽(num)
table->setColumnWidth(1,80); //设置第二列的列宽(cmd)
table->setColumnWidth(2,80); //设置第三列的列宽(par1)
@@ -71,9 +74,9 @@ MissionUI::MissionUI(QWidget *parent) :
V_headerView->setHidden(true); //行名隐藏
QHeaderView* H_headerView = table->horizontalHeader();
H_headerView->setStretchLastSection(true);
H_headerView->setDefaultAlignment(Qt::AlignLeft); //表头信息显示居中靠左
H_headerView->setHighlightSections(false);//高亮选中内容的所在列标题
H_headerView->setStretchLastSection(true);
connect(table,&QTableWidget::itemSelectionChanged,
@@ -221,6 +224,7 @@ void MissionUI::pointCreate(float param1,float param2,float param3,float param4,
tableWidget->removeCellWidget(idx,8);
tableWidget->setItem(idx,8,new QTableWidgetItem(QString::number(z)));
//tableWidget->selectRow(idx);
for (int i = 0;i<tableWidget->rowCount();i++)
{
@@ -231,14 +235,6 @@ void MissionUI::pointCreate(float param1,float param2,float param3,float param4,
tableWidget->removeRow(i);
}
}
/*
for (int i = 0;i<tableWidget->rowCount();i++)
{
QTableWidgetItem* pItem = tableWidget->item(i, 0);
if(pItem)
pItem->setFlags(pItem->flags() & (~Qt::ItemIsEditable));
}
*/
}
void MissionUI::pointDelete(int idx)
@@ -256,14 +252,36 @@ void MissionUI::setCurrent(int group,int idx)
QTableWidget *widget = tablelist.value(group);
if(widget)
{
qDebug() << "select" << group << idx;
//widget->selectRow(idx-1);
widget->selectRow(idx - 1);
}
}
void MissionUI::settableGroup(int group)
{
int index = 0;
switch (group) {
case 1:
index = 0;
break;
case 3:
index = 1;
break;
case 4:
index = 2;
break;
case 5:
index = 3;
break;
case 6:
index = 4;
break;
default:
break;
}
ui->tabWidget->setCurrentIndex(index);
}
@@ -291,7 +309,12 @@ void MissionUI::on_tabWidget_currentChanged(int index)
break;
}
emit groupChanged(group);
//emit groupChanged(group);
QTableWidget *widget = tablelist.value(group);
int idx = widget->currentRow() + 1;
emit waypointSelect(group,idx);
}
void MissionUI::on_pushButton_load_clicked()
@@ -462,6 +485,7 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item)
if(column == 2)
{
QLineEdit *line = new QLineEdit(widget);
line->setStyleSheet("background-color: #FFFFFF;font :15px 黑体;");
line->setText(itemValue.toString());
widget->removeCellWidget(row,column);
@@ -541,6 +565,7 @@ void MissionUI::itemDoubleClicked(QTableWidgetItem *item)
if(ok)//能够转成数字
{
QLineEdit *line = new QLineEdit(widget);
line->setStyleSheet("background-color: #FFFFFF;font :15px 黑体;");
//line->setValidator(new QRegExpValidator(QRegExp("[0-9.-]+$")));
+2
View File
@@ -39,6 +39,8 @@ public slots:
void setCurrent(int group,int idx);
void settableGroup(int group);
protected slots:
void closeEvent(QCloseEvent *event);
void resizeEvent(QResizeEvent *event);
+5 -2
View File
@@ -161,6 +161,10 @@ propertyui::propertyui(QWidget *parent) :
this,&propertyui::setAltitude);
connect(this,&propertyui::settableGroup,
table,&MissionUI::settableGroup);
//初始化参数
setWayPointProperty(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3);
@@ -2119,7 +2123,6 @@ void propertyui::GroupChanged(int value)
emit WPGroup(missionGroups);
//emit WPotherPoint(1);
}
void propertyui::setGroup(QVariant value)
@@ -2132,7 +2135,7 @@ void propertyui::setGroup(QVariant value)
emit WPGroup(missionGroups);
//emit WPotherPoint(1);
emit settableGroup(missionGroups);
}
+3
View File
@@ -256,6 +256,9 @@ Q_SIGNALS:
void WPGroup(int group);
void settableGroup(int);
private slots:
void GroupChanged(int value);
+22 -10
View File
@@ -820,6 +820,8 @@ WayPointItem *OPMapWidget::WPCreate()
item->SetMissionType(currentGroup);
int position = item->Number();
emit WPCreated(position, item);
setSelectedWP(item);
item->emitWPProperty();
return item;
}
WayPointItem *OPMapWidget::magicWPCreate()
@@ -832,6 +834,8 @@ WayPointItem *OPMapWidget::magicWPCreate()
item->SetShowNumber(false);
item->setParentItem(map);
item->SetMissionType(currentGroup);
setSelectedWP(item);
item->emitWPProperty();
return item;
}
void OPMapWidget::WPCreate(WayPointItem *item)
@@ -842,6 +846,8 @@ void OPMapWidget::WPCreate(WayPointItem *item)
int position = item->Number();
emit WPCreated(position, item);
setOverlayOpacity(overlayOpacity);
setSelectedWP(item);
item->emitWPProperty();
}
WayPointItem *OPMapWidget::WPCreate(internals::PointLatLng const & coord, int const & altitude)
{
@@ -856,6 +862,8 @@ WayPointItem *OPMapWidget::WPCreate(internals::PointLatLng const & coord, int co
int position = item->Number();
emit WPCreated(position, item);
setOverlayOpacity(overlayOpacity);
setSelectedWP(item);
item->emitWPProperty();
return item;
}
WayPointItem *OPMapWidget::WPCreate(internals::PointLatLng const & coord, int const & altitude, QString const & description)
@@ -871,6 +879,8 @@ WayPointItem *OPMapWidget::WPCreate(internals::PointLatLng const & coord, int co
int position = item->Number();
emit WPCreated(position, item);
setOverlayOpacity(overlayOpacity);
setSelectedWP(item);
item->emitWPProperty();
return item;
}
WayPointItem *OPMapWidget::WPCreate(const distBearingAltitude &relativeCoord, const QString &description)
@@ -886,6 +896,8 @@ WayPointItem *OPMapWidget::WPCreate(const distBearingAltitude &relativeCoord, co
int position = item->Number();
emit WPCreated(position, item);
setOverlayOpacity(overlayOpacity);
setSelectedWP(item);
item->emitWPProperty();
return item;
}
@@ -1329,10 +1341,8 @@ void OPMapWidget::ConnectWP(WayPointItem *item)
//生成后立即选中,并且把信息发给ui界面
setSelectedWP(item);
item->emitWPProperty();
setSelectedWP(item);
}
@@ -1390,7 +1400,7 @@ void OPMapWidget::SetRotate(qreal const & value)
}
}
void OPMapWidget::RipMap()
{
{
new MapRipper(core, map->SelectedArea());
}
@@ -1411,14 +1421,16 @@ void OPMapWidget::setSelectedWP(int number)
{
this->scene()->clearSelection();
WayPointItem *wp = WPFind(currentGroup,number);
wp->setSelected(true);
if(altitudeitem)
if(wp)
{
if(!wp->FollowPrevious())
altitudeitem->setCurrentPoint(wp->Number());
}
wp->setSelected(true);
if(altitudeitem)
{
if(!wp->FollowPrevious())
altitudeitem->setCurrentPoint(wp->Number());
}
}
}
void OPMapWidget::setSelectedWP(WayPointItem *item)