From e5a843d8ab4b85dcc3e86bba56f40cbab484861f Mon Sep 17 00:00:00 2001 From: hm Date: Fri, 6 May 2022 14:34:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=88=AA=E7=82=B9=E9=80=89?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E5=92=8C=E8=A1=A8=E6=A0=BC=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/MissionUI/MissionUI.cpp | 59 +++++++++++++++++++++++---------- App/MissionUI/MissionUI.h | 2 ++ App/MissionUI/propertyui.cpp | 7 ++-- App/MissionUI/propertyui.h | 3 ++ opmap/mapwidget/opmapwidget.cpp | 32 ++++++++++++------ 5 files changed, 74 insertions(+), 29 deletions(-) diff --git a/App/MissionUI/MissionUI.cpp b/App/MissionUI/MissionUI.cpp index 5cdcac5..0c9f1b0 100644 --- a/App/MissionUI/MissionUI.cpp +++ b/App/MissionUI/MissionUI.cpp @@ -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;irowCount();i++) { @@ -231,14 +235,6 @@ void MissionUI::pointCreate(float param1,float param2,float param3,float param4, tableWidget->removeRow(i); } } -/* - for (int i = 0;irowCount();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.-]+$"))); diff --git a/App/MissionUI/MissionUI.h b/App/MissionUI/MissionUI.h index cb717af..eb0a72b 100644 --- a/App/MissionUI/MissionUI.h +++ b/App/MissionUI/MissionUI.h @@ -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); diff --git a/App/MissionUI/propertyui.cpp b/App/MissionUI/propertyui.cpp index bb8449f..9a2fd90 100644 --- a/App/MissionUI/propertyui.cpp +++ b/App/MissionUI/propertyui.cpp @@ -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); } diff --git a/App/MissionUI/propertyui.h b/App/MissionUI/propertyui.h index a932113..5252ff3 100644 --- a/App/MissionUI/propertyui.h +++ b/App/MissionUI/propertyui.h @@ -256,6 +256,9 @@ Q_SIGNALS: void WPGroup(int group); + void settableGroup(int); + + private slots: void GroupChanged(int value); diff --git a/opmap/mapwidget/opmapwidget.cpp b/opmap/mapwidget/opmapwidget.cpp index 74ff906..64af7fd 100644 --- a/opmap/mapwidget/opmapwidget.cpp +++ b/opmap/mapwidget/opmapwidget.cpp @@ -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)