修改航点选中,和表格选中问题
This commit is contained in:
+42
-17
@@ -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.-]+$")));
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -256,6 +256,9 @@ Q_SIGNALS:
|
||||
|
||||
void WPGroup(int group);
|
||||
|
||||
void settableGroup(int);
|
||||
|
||||
|
||||
private slots:
|
||||
|
||||
void GroupChanged(int value);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user