diff --git a/logPlus/formtracktop.cpp b/logPlus/formtracktop.cpp index a0b45b5..ca61783 100644 --- a/logPlus/formtracktop.cpp +++ b/logPlus/formtracktop.cpp @@ -134,173 +134,6 @@ void FormTrackTop::paintEvent(QPaintEvent* event) } -void FormTrackTop::dragEnterEvent(QDragEnterEvent* event) -{ - qDebug() << "FormTrackTop dragEnterEvent"; - - const QMimeData* mimeData = event->mimeData(); - // 检查拖拽的数据类型,确定是否接受拖拽 - if (event->mimeData()->hasFormat("text/plain")) { - event->acceptProposedAction(); - //QApplication::setOverrideCursor(Qt::PointingHandCursor); // 设置鼠标为可添加状态 - } - else - { - event->ignore(); - //QApplication::setOverrideCursor(Qt::ForbiddenCursor); // 设置鼠标为不可添加状态 - } -} - -void FormTrackTop::dragMoveEvent(QDragMoveEvent* event) -{ - qDebug() << "FormTrackTop dragMoveEvent"; - - // 可以在这里更新鼠标的位置,根据位置判断是否可以放置 - // ... - //dragEnterEvent(event); // 可以使用相同的逻辑 - //event->accept(); -} - -void FormTrackTop::dropEvent(QDropEvent* event) -{ - qDebug() << "FormTrackTop dropEvent"; - - // 处理放置动作,更新UI或数据 - if (event->mimeData()->hasFormat("text/plain")) { - // 获取拖拽的数据 - QString strExtern = event->mimeData()->text(); - qDebug() << strExtern; - // - QStringList list = strExtern.split("#@@#");//QString字符串分割函数 - if (list.size() > 3) - { - QString strSlfName = list[0]; - QString strWellName = list[1]; - QString strLineName = list[2]; - QString strType = list[3]; - - qDebug() << "strSlfName:" << strSlfName<< " strWellName:" << strWellName<< " strLineName:" << strLineName << " strType:" << strType; - - if(m_strWellName == strWellName) - { - if(strType=="curveObject") - { - //新建曲线 - emit CallManage::getInstance()->sig_AddLine(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="waveObject") - { - //新建波列 - emit CallManage::getInstance()->sig_AddWave(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="tableObject") - { - //新建表格曲线 - emit CallManage::getInstance()->sig_AddTableLine(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="depthObject") - { - qDebug() << "新建深度"; - //新建曲线 - emit CallManage::getInstance()->sig_AddDepth(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="ganzhuangtuObject") - { - //新建杆状图 - emit CallManage::getInstance()->sig_AddGanZhuangTu(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="JyktObject") - { - //新建井眼垮塌矢量图 - emit CallManage::getInstance()->sig_AddJykt(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="DenvObject") - { - //新建井斜方位图 - emit CallManage::getInstance()->sig_AddDenv(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="DrawImageObject") - { - //图像 成图 - emit CallManage::getInstance()->sig_AddDrawImage(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="SantuyibiaoObject") - { - //斜井三图一表 - emit CallManage::getInstance()->sig_AddSantuyibiao(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="CrackObject") - { - //裂缝 - emit CallManage::getInstance()->sig_AddCrack(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="JiegutextObject") - { - //气测/FMT/射孔/文本 - emit CallManage::getInstance()->sig_AddJiegutext(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="gujingObject") - { - //新建固井 - emit CallManage::getInstance()->sig_AddGujing(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="LogfaceObject") - { - //沉积相 - emit CallManage::getInstance()->sig_AddLogface(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="MCalsObject") - { - //多臂井径 - emit CallManage::getInstance()->sig_AddMCals(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if(strType=="TubingstringObject") - { - //套管组件 - emit CallManage::getInstance()->sig_AddTubingstring(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - else if (strType == "LogMudObject") - { - //LogMud - emit CallManage::getInstance()->sig_AddLogMud(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); - } - - // 接受拖拽事件 - event->setDropAction(Qt::MoveAction); - event->accept(); - } - else - { - if(strType=="wellItem")//井次名称对应多井,统一处理 - { - //拖拽井次,生成多井 - emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName); - // 接受拖拽事件 - event->setDropAction(Qt::MoveAction); - event->accept(); - } - else - { - // 如果井名不正确,不接受拖拽事件 - event->ignore(); - } - } - } - else - { - // 如果数据格式不正确,不接受拖拽事件 - event->ignore(); - } - } - else - { - // 如果数据格式不正确,不接受拖拽事件 - event->ignore(); - } - // 恢复鼠标光标 - //QApplication::restoreOverrideCursor(); -} - //设置 道图例区高度(cm) void FormTrackTop::setTrackHeight(double dTrackHeight) { diff --git a/logPlus/formtracktop.h b/logPlus/formtracktop.h index 58e2315..aad6b1c 100644 --- a/logPlus/formtracktop.h +++ b/logPlus/formtracktop.h @@ -32,9 +32,6 @@ protected: void paintEvent(QPaintEvent *event); public slots: - void dragEnterEvent(QDragEnterEvent* event); - void dragMoveEvent(QDragMoveEvent* event); - void dropEvent(QDropEvent* event); //属性 diff --git a/logPlus/qmytablewidget.cpp b/logPlus/qmytablewidget.cpp index 53a9afe..3e9ebbc 100644 --- a/logPlus/qmytablewidget.cpp +++ b/logPlus/qmytablewidget.cpp @@ -19,6 +19,8 @@ QMyTableWidget::QMyTableWidget(QWidget *parent) : //setSelectionBehavior(QAbstractItemView::SelectColumns); //拖动列 setAcceptDrops(true); + this->setSelectionMode(QAbstractItemView::SingleSelection); + connect(this, SIGNAL(sig_columnDragged(int, int)), this, SLOT(s_columnDragged(int, int))); connect(this, SIGNAL(itemSelectionChanged()), this, SLOT(ChangedItem())); @@ -203,11 +205,12 @@ void QMyTableWidget::performDrag() { qDebug()<<"QMyTableWidget performDrag!"; - if(!currentItem()) + FormTrack* myWidget = qobject_cast(cellWidget(currentRow(), 0)); + if(!myWidget) { return; } - QString strExtern = currentItem()->text(); + QString strExtern = myWidget->m_strUuid; QMimeData *mimeData = new QMimeData; mimeData->setText(strExtern);