diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index afff928..f021815 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -55,34 +55,6 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : //加载样式 loadStyle(":/qrc/qss/flatgray.css"); - //------------------------------------- - ui->tableWidget->hide(); -// //隐藏网格线 -// ui->tableWidget->setShowGrid(false); -// //设置样式表,不显示竖直边框 -// ui->tableWidget->setStyleSheet( "QTableView::item {border-left: 0px solid black;} \ -// QTableView::item:selected {border-left: 0px solid black;}\ -// QTableView::item {border-right: 0px solid black;} \ -// QTableView::item:selected {border-right: 0px solid black;}"); -// // -// ui->tableWidget->verticalHeader()->hide(); //行 -// ui->tableWidget->horizontalHeader()->hide(); //列 -// //ui->tableWidget->verticalHeader()->setFixedWidth(3);//标题栏宽度 -// //ui->tableWidget->horizontalHeader()->setFixedHeight(3);//标题栏高度 -// ui->tableWidget->setColumnCount(1); //动态设置列数 -// ui->tableWidget->horizontalHeader()->setStretchLastSection(true);//最后一列铺满最后 -// //标题 -// QTableWidgetItem *headerItem = new QTableWidgetItem(""); -// ui->tableWidget->setHorizontalHeaderItem(0, headerItem); -// //我们让一列也可以滑动 -// ui->tableWidget->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); -// ui->tableWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); -// // 设置右键菜单策略 -// ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); -// connect(ui->tableWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotContextMenu(QPoint))); -// // 在窗口构造函数中 -// //ui->tableWidget->installEventFilter(this); - //------------------------------------- //ui->tableWidget_2->setFrameShape(QFrame::NoFrame); //设置无边框 //隐藏网格线 @@ -106,10 +78,10 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : connect(ui->tableWidget_2, SIGNAL(itemClicked(QTableWidgetItem*)), this, SLOT(onItemClicked(QTableWidgetItem*))); - //------------------------------------- - ui->tableWidget_3->hide(); - ui->tableWidget_3->verticalHeader()->hide(); - ui->tableWidget_3->horizontalHeader()->hide(); + // 设置右键菜单策略 + ui->tableWidget_2->setContextMenuPolicy(Qt::CustomContextMenu); + // 连接信号和槽 + connect(ui->tableWidget_2, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotContextMenu(QPoint))); connect(this, SIGNAL(sig_NewTrackChangeWidth(QString, int)), this, SLOT(s_NewTrackChangeWidth(QString, int))); //connect(this, SIGNAL(sig_NewWell(QString, QString)), this, SLOT(s_NewWell(QString, QString))); @@ -161,7 +133,6 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : //成果表---------- m_dock2=new QDockWidget(tr(""),this); m_dock2->setFeatures(QDockWidget::NoDockWidgetFeatures);//QDockWidget::DockWidgetMovable - //dock1->setAllowedAreas(Qt::TopDockWidgetArea); // m_formMultiTails = new FormMultiHeads(this); m_formMultiTails->m_strHeadOrTail = "Tail"; @@ -2076,7 +2047,7 @@ QStringList MainWindowCurve::insertCol(int nW) //井没创建,创建井+道+曲线 //新建井 s_NewWell(strWellName, strSlfName); - m_listWell.push_back(strWellName); + //m_listWell.push_back(strWellName);//重复添加 column= 0; } @@ -2327,38 +2298,6 @@ void MainWindowCurve::s_showHeadTable() m_dock1->show(); m_dock2->show(); } - -// if(ui->tableWidget->isVisible()) -// { -// ui->tableWidget->hide(); -// } -// else { -// ui->tableWidget->show(); -// } - -// QTableWidget *tableWidget = new QTableWidget(); - -// tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); -// tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch); - -// tableWidget->setRowCount(5); -// tableWidget->setColumnCount(5); -// for(int i=0; i<5; i++) -// { -// //tableWidget->setColumnWidth(i, 100); -// for(int j=0; j<5; j++) -// { -// QTableWidgetItem* item = new QTableWidgetItem(""); -// tableWidget->setItem(i, j, item); -// } -// } - -//// QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); // 首选大小策略 -//// sizePolicy.setHorizontalStretch(0); // 水平拉伸因子 -//// sizePolicy.setVerticalStretch(0); // 垂直拉伸因子 -//// tableWidget->setSizePolicy(sizePolicy); - -// ui->verticalLayout_head->addWidget(tableWidget, 0, Qt::AlignCenter); // 通过布局添加表格 } QJsonObject MainWindowCurve::makeJson() @@ -2579,7 +2518,7 @@ void MainWindowCurve::s_NewTrack() //井没创建,创建井+道+曲线 //新建井 s_NewWell(strWellName, strSlfName); - m_listWell.push_back(strWellName); + //m_listWell.push_back(strWellName);//重复添加 column= 0; } @@ -2644,7 +2583,7 @@ void MainWindowCurve::s_NewDepth() //井没创建,创建井+道+曲线 //新建井 s_NewWell(strWellName, strSlfName); - m_listWell.push_back(strWellName); + //m_listWell.push_back(strWellName);//重复添加 column= 0; } @@ -3248,7 +3187,7 @@ void MainWindowCurve::NewWellAndTrack(QString strWellName, QString strSlfName, Q //井没创建,创建井+道+曲线 //新建井 s_NewWell(strWellName, strSlfName); - m_listWell.push_back(strWellName); + //m_listWell.push_back(strWellName);//重复添加 //新建道+曲线 emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, strLineName, strType, nW); @@ -4239,3 +4178,92 @@ void MainWindowCurve::resizeItem(QString strWellName, double colWidth, double ro } } } + +void MainWindowCurve::slotContextMenu(QPoint pos) +{ + if(ui->tableWidget_2->columnCount()==0) + { + return; + } + + int column = ui->tableWidget_2->currentColumn();//列编号从0开始 + if(column<0) + { + //当前没有选中井 + QMessageBox::warning(this, "提示", "当前没有选中井", "确定"); + return; + } + + if(column%2==0) + { + } + else + { + //空白列 + QMessageBox::warning(this, "提示", "当前没有选中井", "确定"); + return; + } + //当前行 + int iCurrentRow = ui->tableWidget_2->currentRow(); + if(iCurrentRow == 0) + { + QMenu menu(ui->tableWidget_2); + menu.addAction(QIcon(::GetImagePath() + "antialiasing.png"), "删除当前测井图", this, &MainWindowCurve::slotDeleteSelectTrack); + menu.exec(ui->tableWidget_2->mapToGlobal(pos)); + } +} + +void MainWindowCurve::slotDeleteSelectTrack() +{ + int colCount = ui->tableWidget_2->columnCount(); + + //当前列 + int column = ui->tableWidget_2->currentColumn();//列编号从0开始 + if(column<0) + { + //当前没有选中井 + QMessageBox::warning(this, "提示", "当前没有选中井", "确定"); + return; + } + + if(column%2==0) + { + } + else + { + //空白列 + QMessageBox::warning(this, "提示", "当前没有选中井", "确定"); + return; + } + + //当前行 + int iCurrentRow = ui->tableWidget_2->currentRow(); + if(iCurrentRow == 0) + { + if(column==0) + { + if(colCount==1)//只有1口井 + { + ui->tableWidget_2->removeColumn(column); + m_listWell.clear(); + } + else + { + QString strWellName = ui->tableWidget_2->item(iCurrentRow, column)->text(); + m_listWell.removeOne(strWellName); + // + ui->tableWidget_2->removeColumn(column+1);//空白列,注意先删除空白列,否则列号改变 + ui->tableWidget_2->removeColumn(column); + } + } + else if(column>1) + { + QString strWellName = ui->tableWidget_2->item(iCurrentRow, column)->text(); + m_listWell.removeOne(strWellName); + // + ui->tableWidget_2->removeColumn(column); + ui->tableWidget_2->removeColumn(column-1);//空白列,注意先删除选中列,否则列号改变 + } + //resizeWindow(); + } +} diff --git a/logPlus/mainwindowcurve.h b/logPlus/mainwindowcurve.h index 963cc9f..8a7b986 100644 --- a/logPlus/mainwindowcurve.h +++ b/logPlus/mainwindowcurve.h @@ -77,7 +77,7 @@ public: QLineEdit *spinbox3; int m_iScale=200; - double m_iY1=0; + double m_iY1=-1000; double m_iY2=0; public: @@ -156,6 +156,10 @@ public slots: //右键--清除全部分段线 void s_DelAllShiftLine(QString strUuid); + //右键菜单响应函数 + void slotContextMenu(QPoint pos); + void slotDeleteSelectTrack(); + public slots: void s_NewWell(QString strWellName, QString strSlfName);//新建井 void s_NewTrackChangeWidth(QString strWellName, int nW=0);//新建道后,改变井宽 diff --git a/logPlus/mainwindowcurve.ui b/logPlus/mainwindowcurve.ui index 1366e1c..04141b1 100644 --- a/logPlus/mainwindowcurve.ui +++ b/logPlus/mainwindowcurve.ui @@ -17,15 +17,9 @@ - - - - - -