优化图头的拷贝粘贴
This commit is contained in:
parent
34adb5ebd7
commit
25f6ba87c2
|
|
@ -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<int, QList<int>> selMap;//行,列
|
||||
QList<QTableWidgetItem*> 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<int, QList<int>>::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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
//图头、成果表
|
||||
//取消其他表格的选中状态
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ FormMultiHeads::~FormMultiHeads()
|
|||
|
||||
void FormMultiHeads::slotCellClicked(int row, int column)
|
||||
{
|
||||
qDebug() << "FormMultiHeads slotCellClicked";
|
||||
//qDebug() << "FormMultiHeads slotCellClicked";
|
||||
|
||||
//取消其他表格的选中状态(图头、成果表)
|
||||
emit CallManage::getInstance()->sig_UnSelectTableItem("");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user