diff --git a/logPlus/formhead.cpp b/logPlus/formhead.cpp index 0f6bf17..fa794d9 100644 --- a/logPlus/formhead.cpp +++ b/logPlus/formhead.cpp @@ -203,6 +203,15 @@ void FormHead::Init(int iRows, int iCols) connect(CallManage::getInstance(), SIGNAL(sig_UnSelectTableItem(QString)), this, SLOT(s_UnSelectTableItem(QString))); connect(ui->tableWidget, SIGNAL(cellChanged(int, int)), this, SLOT(slotCellChanged(int, int))); connect(ui->tableWidget, SIGNAL(currentCellChanged(int, int, int, int)), this, SLOT(slotCurrentCellChanged(int, int, int, int))); + //鼠标点击表格 + connect(ui->tableWidget, SIGNAL(cellClicked(int, int)), this, SLOT(slotCellClicked(int, int))); + +} + +void FormHead::slotCellClicked(int row, int column) +{ + //取消其他表格的选中状态(图头、成果表) + emit CallManage::getInstance()->sig_UnSelectTableItem(m_indexID); } //更新 @@ -1043,14 +1052,17 @@ void FormHead::keyPressEvent(QKeyEvent * event) void FormHead::copy() { QMap> selMap;//行,列 - QList list = ui->tableWidget->selectedItems(); - if (list.count() <= 0) - return; - for (QTableWidgetItem* item : list) + QModelIndexList list = ui->tableWidget->selectionModel()->selectedIndexes(); + if (list.size() < 1) { - int rowN = ui->tableWidget->row(item); - int colN = ui->tableWidget->column(item); - selMap[rowN].append(colN); + QMessageBox::warning(this, "单元格拷贝", "请选中单元格", "确定"); + return; + } + for(auto range:list) + { + int rowN = range.row(); + int colN = range.column(); + selMap[rowN].append(colN); } QString cpStr; QMap>::iterator it = selMap.begin(); @@ -1058,10 +1070,14 @@ void FormHead::copy() { for (int i = 0; i < (*it).count(); i++) { - QTableWidgetItem* item = ui->tableWidget->item(it.key(), (*it).at(i)); - if (item) + auto myWidget = ui->tableWidget->cellWidget(it.key(), (*it).at(i)); + if(myWidget) { - cpStr.append(item->text().trimmed()); + FormTableItem* formTableItemTmp = (FormTableItem*)myWidget;//获得widget + if(formTableItemTmp) + { + cpStr.append(formTableItemTmp->m_strShowTxt.trimmed()); + } } if (i != (*it).count() - 1) cpStr.append("\t"); @@ -1072,6 +1088,7 @@ void FormHead::copy() cpStr.append("\n"); } } + QApplication::clipboard()->setText(cpStr); } @@ -1100,9 +1117,6 @@ void FormHead::Paste() bImg=true; //1.直接采用控件显示 - FormTableItem* formTableItem = new FormTableItem; - formTableItem->m_pixmap = pixmap; - ui->tableWidget->setCellWidget(rowN, colN, formTableItem); // 保存为PNG文件 QString strImg = QDateTime::currentDateTime().toString("yyyyMMdd-hhmmsszzz"); @@ -1128,9 +1142,11 @@ void FormHead::Paste() return; } + formTableItemTmp->m_pixmap = pixmap; formTableItemTmp->m_strImg = folderPath; // 图片路径 formTableItemTmp->m_colWidth_Img = pixmap.width()/g_dPixelPerCm; //图例宽 formTableItemTmp->m_rowHeight_Img = pixmap.height()/g_dPixelPerCm; //图例高 + formTableItemTmp->update(); // PropertyService()->initHeadProperty(this, ui->tableWidget, formTableItemTmp, rowN, colN); @@ -1178,12 +1194,14 @@ void FormHead::Paste() else { FormTableItem* formTableItem = new FormTableItem; + formTableItem->m_strShowTxt = rowDataList.at(j); ui->tableWidget->setCellWidget(x, y, formTableItem); } } else { FormTableItem* formTableItem = new FormTableItem; + formTableItem->m_strShowTxt = rowDataList.at(j); ui->tableWidget->setCellWidget(x, y, formTableItem); } } diff --git a/logPlus/formhead.h b/logPlus/formhead.h index 261734a..285dd48 100644 --- a/logPlus/formhead.h +++ b/logPlus/formhead.h @@ -59,6 +59,8 @@ public slots: //cell void slotCellChanged(int row, int column); void slotCurrentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn); + //鼠标点击表格 + void slotCellClicked(int row, int column); //图头、成果表 //取消其他表格的选中状态 diff --git a/logPlus/formmultiheads.cpp b/logPlus/formmultiheads.cpp index fd55ed7..c134d61 100644 --- a/logPlus/formmultiheads.cpp +++ b/logPlus/formmultiheads.cpp @@ -73,7 +73,7 @@ FormMultiHeads::~FormMultiHeads() void FormMultiHeads::slotCellClicked(int row, int column) { - qDebug() << "FormMultiHeads slotCellClicked"; + //qDebug() << "FormMultiHeads slotCellClicked"; //取消其他表格的选中状态(图头、成果表) emit CallManage::getInstance()->sig_UnSelectTableItem("");