Merge branch 'main' of http://git.hivekion.com:3000/jiayulong/logplus
This commit is contained in:
commit
1239785258
|
|
@ -467,7 +467,7 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
|
|||
{
|
||||
double newWidth = variant.value<double>();
|
||||
m_item->setData(Qt::UserRole+2, newWidth); // 图片路径
|
||||
m_colWidth = newWidth;
|
||||
m_colWidth_Img = newWidth;
|
||||
//图头项改变
|
||||
ChangHeadItemProperty();
|
||||
}
|
||||
|
|
@ -480,11 +480,41 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
|
|||
{
|
||||
double newHight = variant.value<double>();
|
||||
m_item->setData(Qt::UserRole+3, newHight); // 图片路径
|
||||
m_rowHeight = newHight;
|
||||
m_rowHeight_Img = newHight;
|
||||
//图头项改变
|
||||
ChangHeadItemProperty();
|
||||
}
|
||||
}
|
||||
else if("列宽(cm)" == m_propertyData[pProperty])
|
||||
{
|
||||
//qDebug() << "列宽(cm)->改变";
|
||||
//当前属性类型
|
||||
if(m_strCurrentProperty == Head_Property)
|
||||
{
|
||||
double newWidth = variant.value<double>();
|
||||
m_colWidth = newWidth;
|
||||
m_formHead->m_bRefresh=false;
|
||||
//图头项改变
|
||||
m_tableWidget->setColumnWidth(m_iCol, m_colWidth*g_dPixelPerCm);
|
||||
m_tableWidget->update();
|
||||
m_formHead->resizeWindow();
|
||||
}
|
||||
}
|
||||
else if("行高(cm)" == m_propertyData[pProperty])
|
||||
{
|
||||
//qDebug() << "行高(cm)->改变";
|
||||
//当前属性类型
|
||||
if(m_strCurrentProperty == Head_Property)
|
||||
{
|
||||
double newHight = variant.value<double>();
|
||||
m_rowHeight = newHight;
|
||||
m_formHead->m_bRefresh=false;
|
||||
//图头项改变
|
||||
m_tableWidget->setRowHeight(m_iRow, m_rowHeight*g_dPixelPerCm);
|
||||
m_tableWidget->update();
|
||||
m_formHead->resizeWindow();
|
||||
}
|
||||
}
|
||||
else if("内容" == m_propertyData[pProperty])
|
||||
{
|
||||
//qDebug() << "内容->改变";
|
||||
|
|
@ -587,8 +617,8 @@ void PropertyWidget::ChangHeadItemProperty()
|
|||
{
|
||||
if(imagePath.size()>4)
|
||||
{
|
||||
int colWidth = m_colWidth*g_dPixelPerCm;
|
||||
int rowHeight = m_rowHeight*g_dPixelPerCm;
|
||||
int colWidth = m_colWidth_Img*g_dPixelPerCm;
|
||||
int rowHeight = m_rowHeight_Img*g_dPixelPerCm;
|
||||
//
|
||||
QString strLast = imagePath.right(4);
|
||||
if(strLast.toLower()==".svg")
|
||||
|
|
@ -623,7 +653,7 @@ void PropertyWidget::ChangHeadItemProperty()
|
|||
//pixmap.scaled(colWidth-1, rowHeight-1, Qt::KeepAspectRatio, Qt::SmoothTransformation);//缩放
|
||||
//1.直接采用控件显示
|
||||
QLabel* label = new QLabel;
|
||||
label->setPixmap(pixmap.scaled(colWidth-1, rowHeight-1, Qt::KeepAspectRatio, Qt::SmoothTransformation));//pixmap
|
||||
label->setPixmap(pixmap.scaled(colWidth-1, rowHeight-1, Qt::KeepAspectRatio, Qt::SmoothTransformation));//图片保持比例缩放
|
||||
label->setAlignment(Qt::AlignHCenter);
|
||||
label->show();
|
||||
//
|
||||
|
|
@ -1054,31 +1084,37 @@ void PropertyWidget::initHeadProperty(FormHead *formHead, QTableWidget *tableWid
|
|||
listDirection.append("水平");
|
||||
listDirection.append("垂直");
|
||||
|
||||
QString imagePath = "";//"./image/胜利符号库/解释结论符号/油层.svg"
|
||||
QString imagePath = ""; //"./image/胜利符号库/解释结论符号/油层.svg"
|
||||
QVariant bgData = m_item->data(Qt::UserRole+1); // 我们约定用这个角色存储图片路径
|
||||
if (bgData.isValid()) {
|
||||
imagePath = bgData.toString();
|
||||
}
|
||||
//图例宽
|
||||
QVariant colWidthData = m_item->data(Qt::UserRole+2);
|
||||
if (colWidthData.isValid()) {
|
||||
m_colWidth = colWidthData.toDouble();
|
||||
QVariant colWidth_Img = m_item->data(Qt::UserRole+2);
|
||||
if (colWidth_Img.isValid()) {
|
||||
m_colWidth_Img = colWidth_Img.toDouble();
|
||||
}
|
||||
//图例高
|
||||
QVariant rowHeightData = m_item->data(Qt::UserRole+3);
|
||||
if (rowHeightData.isValid()) {
|
||||
m_rowHeight = rowHeightData.toDouble();
|
||||
QVariant rowHeight_Img = m_item->data(Qt::UserRole+3);
|
||||
if (rowHeight_Img.isValid()) {
|
||||
m_rowHeight_Img = rowHeight_Img.toDouble();
|
||||
}
|
||||
|
||||
m_colWidth = tableWidget->columnWidth(col)/g_dPixelPerCm;
|
||||
m_rowHeight = tableWidget->rowHeight(row)/g_dPixelPerCm;
|
||||
|
||||
_CreateVariantPropertyItem("单元格", "图例", imagePath, VariantManager::filePathTypeId()); //"./image/胜利符号库/岩性符号/砂岩.png"
|
||||
_CreateVariantPropertyItem("单元格", "图例宽(cm)", m_colWidth, QVariant::Double, 0, 100);
|
||||
_CreateVariantPropertyItem("单元格", "图例高(cm)", m_rowHeight, QVariant::Double, 0, 100);
|
||||
_CreateVariantPropertyItem("单元格", "图例宽(cm)", m_colWidth_Img, QVariant::Double, 0, 100);
|
||||
_CreateVariantPropertyItem("单元格", "图例高(cm)", m_rowHeight_Img, QVariant::Double, 0, 100);
|
||||
|
||||
_CreateVariantPropertyItem("文本", "内容", item->text(), QVariant::String);
|
||||
_CreateVariantPropertyItem("文本", "字体", m_item->font(), QVariant::Font);
|
||||
_CreateEnumPropertyItem("文本", "方向", 0, listDirection);
|
||||
_CreateVariantPropertyItem("文本", "字体颜色", m_item->foreground().color(), QVariant::Color);
|
||||
|
||||
_CreateVariantPropertyItem("表格", "行高(cm)", m_rowHeight, QVariant::Double, 0, 100);
|
||||
_CreateVariantPropertyItem("表格", "列宽(cm)", m_colWidth, QVariant::Double, 0, 100);
|
||||
|
||||
}
|
||||
|
||||
void PropertyWidget::initDepthProperty(FormInfo *formInfo)
|
||||
|
|
|
|||
|
|
@ -72,11 +72,17 @@ public:
|
|||
|
||||
FormTrackTop* m_fromTop = NULL;
|
||||
FormInfo * m_formInfo = NULL;
|
||||
|
||||
//图头
|
||||
FormHead *m_formHead;
|
||||
QTableWidget *m_tableWidget;
|
||||
QTableWidgetItem* m_item;
|
||||
int m_iRow;
|
||||
int m_iCol;
|
||||
//图头, 图例宽高
|
||||
double m_colWidth_Img = 1;
|
||||
double m_rowHeight_Img = 1;
|
||||
//图头, 行高、列宽
|
||||
double m_colWidth = 1;
|
||||
double m_rowHeight = 1;
|
||||
|
||||
|
|
|
|||
|
|
@ -18,20 +18,22 @@
|
|||
|
||||
extern QString g_prjname;
|
||||
|
||||
int g_iFixedWidth=40;
|
||||
int g_iFixedHeight=30;
|
||||
//标题栏宽度、高度
|
||||
int g_iFixedWidth=0;//40;
|
||||
int g_iFixedHeight=0;//30;
|
||||
|
||||
int g_iColsWidth=100;
|
||||
int g_iRowsHight=40;
|
||||
extern double g_dPixelPerCm;//每厘米像素数
|
||||
//画图头
|
||||
FormHead::FormHead(QWidget *parent, int indexID) :
|
||||
FormHead::FormHead(QWidget *parent, QString indexID) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::FormHead)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_indexID =indexID;
|
||||
m_parent = (FormMultiHeads *)parent;
|
||||
|
||||
//设置样式表,不显示竖直边框
|
||||
ui->tableWidget->setStyleSheet( "QTableView::item {border-left: 0px solid black;} \
|
||||
|
|
@ -39,19 +41,22 @@ FormHead::FormHead(QWidget *parent, int indexID) :
|
|||
QTableView::item {border-right: 0px solid black;} \
|
||||
QTableView::item:selected {border-right: 0px solid black;}");
|
||||
|
||||
//ui->tableWidget->setSizeAdjustPolicy(QTableWidget::AdjustToContents); //表格大小随内容改变,会占满
|
||||
|
||||
//
|
||||
//ui->tableWidget->verticalHeader()->hide(); //行
|
||||
//ui->tableWidget->horizontalHeader()->hide(); //列
|
||||
ui->tableWidget->verticalHeader()->hide(); //行
|
||||
ui->tableWidget->horizontalHeader()->hide(); //列
|
||||
ui->tableWidget->verticalHeader()->setFixedWidth(g_iFixedWidth);//标题栏宽度
|
||||
ui->tableWidget->horizontalHeader()->setFixedHeight(g_iFixedHeight);//标题栏高度
|
||||
//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->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
|
||||
// ui->tableWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
|
||||
// 设置右键菜单策略
|
||||
ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
// 在窗口构造函数中
|
||||
|
|
@ -72,8 +77,21 @@ FormHead::~FormHead()
|
|||
void FormHead::resizeWindow()
|
||||
{
|
||||
QRect rect = this->rect();
|
||||
int tempWidth = m_iCols*g_iColsWidth+g_iFixedWidth+10;
|
||||
int tempHight = m_iRows*g_iRowsHight+g_iFixedHeight+10;
|
||||
int tempWidth = 0; //m_iCols*(g_iColsWidth+1)+g_iFixedWidth;
|
||||
int tempHight = 0; //m_iRows*(g_iRowsHight+1)+g_iFixedHeight;
|
||||
|
||||
for(int i=0; i<ui->tableWidget->columnCount(); i++)
|
||||
{
|
||||
tempWidth += ui->tableWidget->columnWidth(i);
|
||||
tempWidth += 1;
|
||||
}
|
||||
//
|
||||
for(int j=0; j<ui->tableWidget->rowCount(); j++)
|
||||
{
|
||||
tempHight += ui->tableWidget->rowHeight(j);
|
||||
tempHight += 1;
|
||||
}
|
||||
|
||||
//调整大小
|
||||
if(rect.width()>tempWidth)
|
||||
{
|
||||
|
|
@ -83,6 +101,8 @@ void FormHead::resizeWindow()
|
|||
{
|
||||
ui->tableWidget->setGeometry(0, 2, tempWidth, tempHight);
|
||||
}
|
||||
|
||||
m_parent->resizeItem(m_indexID, tempWidth, tempHight);
|
||||
}
|
||||
|
||||
void FormHead::resizeEvent(QResizeEvent *event)
|
||||
|
|
@ -97,10 +117,10 @@ void FormHead::Init(int iRows, int iCols)
|
|||
|
||||
//清空
|
||||
ui->tableWidget->clearContents();
|
||||
//ui->tableWidget->verticalHeader()->hide();//隐藏左侧系统序号栏
|
||||
//ui->tableWidget->horizontalHeader()->hide();//隐藏上方系统序号栏
|
||||
//ui->tableWidget->verticalHeader()->setFixedWidth(3);//标题栏宽度
|
||||
//ui->tableWidget->horizontalHeader()->setFixedHeight(3);//标题栏高度
|
||||
ui->tableWidget->verticalHeader()->hide();//隐藏左侧系统序号栏
|
||||
ui->tableWidget->horizontalHeader()->hide();//隐藏上方系统序号栏
|
||||
ui->tableWidget->verticalHeader()->setFixedWidth(0);//标题栏宽度
|
||||
ui->tableWidget->horizontalHeader()->setFixedHeight(0);//标题栏高度
|
||||
|
||||
//QRect rect = this->rect();
|
||||
|
||||
|
|
@ -131,13 +151,15 @@ void FormHead::Init(int iRows, int iCols)
|
|||
//设置列宽
|
||||
ui->tableWidget->setColumnWidth(j, g_iColsWidth);
|
||||
|
||||
double colWidth = g_iColsWidth-1;
|
||||
double rowHeight = g_iRowsHight-1;
|
||||
double colWidth = g_iColsWidth;
|
||||
double rowHeight = g_iRowsHight;
|
||||
QTableWidgetItem* item = new QTableWidgetItem("");//QString::number(i) + "-" + QString::number(j)
|
||||
// 将图片路径存储在Qt::UserRole+1角色中
|
||||
item->setData(Qt::UserRole+1, "./image/胜利符号库/解释结论符号/"); // 图片路径
|
||||
item->setData(Qt::UserRole+2, colWidth/g_dPixelPerCm); //图例宽
|
||||
item->setData(Qt::UserRole+3, rowHeight/g_dPixelPerCm); //图例高
|
||||
item->setData(Qt::UserRole+1, ""); //图片路径 ./image/胜利符号库/解释结论符号/
|
||||
item->setData(Qt::UserRole+2, 0); //图例宽
|
||||
item->setData(Qt::UserRole+3, 0); //图例高
|
||||
// item->setData(Qt::UserRole+4, colWidth/g_dPixelPerCm); //列宽
|
||||
// item->setData(Qt::UserRole+5, rowHeight/g_dPixelPerCm); //行高
|
||||
ui->tableWidget->setItem(i, j, item);
|
||||
|
||||
//---------------------------
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <QWidget>
|
||||
#include <QTableWidgetItem>
|
||||
#include "formmultiheads.h"
|
||||
|
||||
#pragma execution_character_set("utf-8")
|
||||
|
||||
|
|
@ -15,7 +16,7 @@ class FormHead : public QWidget
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit FormHead(QWidget *parent = nullptr, int indexID=0);
|
||||
explicit FormHead(QWidget *parent = nullptr, QString indexID="");
|
||||
~FormHead();
|
||||
|
||||
private:
|
||||
|
|
@ -31,11 +32,12 @@ public:
|
|||
void onPasteExcelData();
|
||||
|
||||
public:
|
||||
int m_indexID;
|
||||
QString m_indexID;
|
||||
int m_iRows;
|
||||
int m_iCols;
|
||||
|
||||
bool m_bRefresh=true;
|
||||
FormMultiHeads *m_parent;
|
||||
|
||||
public:
|
||||
void Init(int iRows, int iCols);
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include <QMenu>
|
||||
#include "newheaddialog.h"
|
||||
#include "formhead.h"
|
||||
#include "qtcommonclass.h"
|
||||
|
||||
extern int g_iRows;
|
||||
extern int g_iCols;
|
||||
|
|
@ -29,10 +30,10 @@ FormMultiHeads::FormMultiHeads(QWidget *parent) :
|
|||
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(10);//标题栏宽度
|
||||
ui->tableWidget->horizontalHeader()->setFixedHeight(10);//标题栏高度
|
||||
ui->tableWidget->verticalHeader()->hide(); //行
|
||||
ui->tableWidget->horizontalHeader()->hide(); //列
|
||||
ui->tableWidget->verticalHeader()->setFixedWidth(0);//标题栏宽度
|
||||
ui->tableWidget->horizontalHeader()->setFixedHeight(0);//标题栏高度
|
||||
ui->tableWidget->setColumnCount(1); //动态设置列数
|
||||
ui->tableWidget->horizontalHeader()->setStretchLastSection(true);//最后一列铺满最后
|
||||
//标题
|
||||
|
|
@ -54,7 +55,9 @@ FormMultiHeads::~FormMultiHeads()
|
|||
}
|
||||
|
||||
void FormMultiHeads::slotContextMenu(QPoint pos)
|
||||
{
|
||||
{
|
||||
QtCommonClass *qtCommon = new QtCommonClass(this);
|
||||
//
|
||||
QMenu menu(ui->tableWidget);
|
||||
QAction *newAction = menu.addAction("新建图头");
|
||||
// 弹出菜单
|
||||
|
|
@ -75,8 +78,8 @@ void FormMultiHeads::slotContextMenu(QPoint pos)
|
|||
QTableWidgetItem *headerItem = new QTableWidgetItem("");
|
||||
ui->tableWidget->setVerticalHeaderItem(rowcount, headerItem);
|
||||
|
||||
int tempWidth = g_iCols*g_iColsWidth+g_iFixedWidth+15;
|
||||
int tempHight = g_iRows*g_iRowsHight+g_iFixedHeight+15;
|
||||
int tempWidth = g_iCols*g_iColsWidth+g_iFixedWidth+8;
|
||||
int tempHight = g_iRows*g_iRowsHight+g_iFixedHeight+8;
|
||||
//设置行高度
|
||||
ui->tableWidget->setRowHeight(rowcount, tempHight);
|
||||
if(rowcount==0)
|
||||
|
|
@ -87,14 +90,15 @@ void FormMultiHeads::slotContextMenu(QPoint pos)
|
|||
else
|
||||
{
|
||||
int iWidth=ui->tableWidget->columnWidth(0);
|
||||
if(iWidth<g_iCols*g_iColsWidth)//列宽变大
|
||||
if(iWidth<g_iCols*g_iColsWidth)//列宽变大,以最大列宽为准
|
||||
{
|
||||
//设置列宽
|
||||
ui->tableWidget->setColumnWidth(0, tempWidth);
|
||||
}
|
||||
}
|
||||
//
|
||||
FormHead *widgetHead = new FormHead(this, 1);
|
||||
QString strUuid = qtCommon->getUUid();
|
||||
FormHead *widgetHead = new FormHead(this, strUuid);
|
||||
widgetHead->Init(g_iRows, g_iCols);
|
||||
ui->tableWidget->setCellWidget(rowcount, 0, widgetHead);
|
||||
}
|
||||
|
|
@ -107,67 +111,37 @@ void FormMultiHeads::slotContextMenu(QPoint pos)
|
|||
qDebug() << "other=";
|
||||
}
|
||||
}
|
||||
|
||||
// if(ui->tableWidget->rowCount()==0 && ui->tableWidget->rowCount()==0)
|
||||
// {
|
||||
// QMenu menu(ui->tableWidget);
|
||||
// QAction *newAction = menu.addAction("新建图头");
|
||||
// // 弹出菜单
|
||||
// QAction *selectedAction = menu.exec(ui->tableWidget->mapToGlobal(pos));
|
||||
// if (selectedAction == newAction) {
|
||||
// NewHeadDialog *dlg = new NewHeadDialog(this);
|
||||
// //
|
||||
// dlg->setAttribute(Qt::WA_DeleteOnClose);//关闭时,自动删除窗口对象
|
||||
// int result = dlg->exec();//模态对话框
|
||||
// if (result == QDialog::Accepted) {
|
||||
// // 处理用户点击了确定按钮的逻辑
|
||||
// qDebug() << "Accepted=";
|
||||
// //
|
||||
// ui->tableWidget->clear();
|
||||
// //
|
||||
// ui->tableWidget->setColumnCount(g_iCols);
|
||||
// ui->tableWidget->setRowCount(g_iRows); //动态设置行数
|
||||
// for(int i=0; i<g_iRows; i++)
|
||||
// {
|
||||
// for(int j=0; j<g_iCols; j++)
|
||||
// {
|
||||
// QTableWidgetItem* item = new QTableWidgetItem("");
|
||||
// ui->tableWidget->setItem(i, j, item);
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
// else if (result == QDialog::Rejected) {
|
||||
// // 处理用户点击了取消按钮的逻辑
|
||||
// qDebug() << "Rejected=";
|
||||
// }
|
||||
// else {
|
||||
// // 处理其他情况的逻辑
|
||||
// qDebug() << "other=";
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// QMenu menu(ui->tableWidget);
|
||||
// QAction *mergeAction = menu.addAction("合并表格");
|
||||
// QAction *refreshAction = menu.addAction("拆分表格");
|
||||
// QAction *deleteAction = menu.addAction("删除行");
|
||||
// QAction *addAction = menu.addAction("添加行");
|
||||
|
||||
// // 弹出菜单
|
||||
// QAction *selectedAction = menu.exec(ui->tableWidget->mapToGlobal(pos));
|
||||
|
||||
// if (selectedAction == mergeAction) {
|
||||
// qDebug() << "合并表格";
|
||||
// slotMerge();
|
||||
// } else if (selectedAction == deleteAction) {
|
||||
// //删除1行
|
||||
// int row = ui->tableWidget->currentRow();
|
||||
// ui->tableWidget->removeRow(row);
|
||||
// } else if (selectedAction == refreshAction) {
|
||||
// qDebug() << "拆分表格";
|
||||
// slotSplit();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
void FormMultiHeads::resizeItem(QString indexID, double tempWidth, double tempHight)
|
||||
{
|
||||
//
|
||||
int rowCount = ui->tableWidget->rowCount();//总行数
|
||||
for(int i=0; i<rowCount; i++)
|
||||
{
|
||||
if( ui->tableWidget->cellWidget(i, 0) != nullptr )
|
||||
{
|
||||
auto myWidget = ui->tableWidget->cellWidget(i, 0);
|
||||
if(myWidget)
|
||||
{
|
||||
//
|
||||
FormHead *widgetHead = (FormHead*)myWidget;//获得widget
|
||||
if(widgetHead)
|
||||
{
|
||||
if(widgetHead->m_indexID == indexID)
|
||||
{
|
||||
//设置行高度
|
||||
ui->tableWidget->setRowHeight(i, tempHight+8);
|
||||
|
||||
int iWidth=ui->tableWidget->columnWidth(0);
|
||||
if(iWidth<tempWidth+8)//列宽变大,以最大列宽为准
|
||||
{
|
||||
//设置列宽
|
||||
ui->tableWidget->setColumnWidth(0, tempWidth+8);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ public slots:
|
|||
void slotContextMenu(QPoint pos);
|
||||
|
||||
|
||||
public:
|
||||
void resizeItem(QString indexID, double tempWidth, double tempHight);
|
||||
|
||||
};
|
||||
|
||||
#endif // FORMMULTIHEADS_H
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
#include <QFuture>
|
||||
#include <QtConcurrent/QtConcurrent>
|
||||
#include "newheaddialog.h"
|
||||
#include "formhead.h"
|
||||
//#include "qmytablewidget.h"
|
||||
#include "PropertyWidget.h"
|
||||
#include "LogModuleParamers.h"
|
||||
|
|
@ -23,10 +22,11 @@ extern QString g_prjname;
|
|||
extern double g_dPixelPerCm;//每厘米像素数
|
||||
extern int g_iShow; //显示刻度
|
||||
|
||||
extern int g_iRows;
|
||||
extern int g_iCols;
|
||||
extern int g_iColsWidth;
|
||||
extern int g_iRowsHight;
|
||||
//图头
|
||||
//extern int g_iRows;
|
||||
//extern int g_iCols;
|
||||
//extern int g_iColsWidth;
|
||||
//extern int g_iRowsHight;
|
||||
|
||||
MainWindowCurve::MainWindowCurve(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
|
|
@ -3286,352 +3286,6 @@ void MainWindowCurve::dropEvent(QDropEvent* event)
|
|||
//QApplication::restoreOverrideCursor();
|
||||
}
|
||||
|
||||
void MainWindowCurve::slotContextMenu(QPoint pos)
|
||||
{
|
||||
// QMenu menu(ui->tableWidget);
|
||||
// QAction *newAction = menu.addAction("新建图头");
|
||||
// // 弹出菜单
|
||||
// QAction *selectedAction = menu.exec(ui->tableWidget->mapToGlobal(pos));
|
||||
// if (selectedAction == newAction) {
|
||||
// NewHeadDialog *dlg = new NewHeadDialog(this);
|
||||
// //
|
||||
// dlg->setAttribute(Qt::WA_DeleteOnClose);//关闭时,自动删除窗口对象
|
||||
// int result = dlg->exec();//模态对话框
|
||||
// if (result == QDialog::Accepted) {
|
||||
// // 处理用户点击了确定按钮的逻辑
|
||||
// qDebug() << "Accepted=";
|
||||
|
||||
// int rowcount = ui->tableWidget->rowCount(); //总行数
|
||||
// //增加1行
|
||||
// ui->tableWidget->setRowCount(rowcount+1);
|
||||
// //行标题
|
||||
// QTableWidgetItem *headerItem = new QTableWidgetItem("");
|
||||
// ui->tableWidget->setVerticalHeaderItem(rowcount, headerItem);
|
||||
|
||||
// int iWidth=0;
|
||||
// //设置行高度
|
||||
// ui->tableWidget->setRowHeight(rowcount, g_iRows*(g_iRowsHight+2)+1);
|
||||
// if(rowcount==0)
|
||||
// {
|
||||
// iWidth=g_iCols*g_iColsWidth;
|
||||
// //设置列宽
|
||||
// ui->tableWidget->setColumnWidth(0, g_iCols*(g_iColsWidth+1)+1);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// iWidth=ui->tableWidget->columnWidth(0);
|
||||
// if(iWidth<g_iCols*g_iColsWidth)//列宽变大
|
||||
// {
|
||||
// iWidth=g_iCols*g_iColsWidth;
|
||||
// //设置列宽
|
||||
// ui->tableWidget->setColumnWidth(0, g_iCols*(g_iColsWidth+1)+1);
|
||||
// }
|
||||
// }
|
||||
// //
|
||||
// FormHead *widgetHead = new FormHead(this, 1);
|
||||
// widgetHead->Init(g_iRows, g_iCols, iWidth);
|
||||
// ui->tableWidget->setCellWidget(rowcount, 0, widgetHead);
|
||||
// }
|
||||
// else if (result == QDialog::Rejected) {
|
||||
// // 处理用户点击了取消按钮的逻辑
|
||||
// qDebug() << "Rejected=";
|
||||
// }
|
||||
// else {
|
||||
// // 处理其他情况的逻辑
|
||||
// qDebug() << "other=";
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// if(ui->tableWidget->rowCount()==0 && ui->tableWidget->rowCount()==0)
|
||||
// {
|
||||
// QMenu menu(ui->tableWidget);
|
||||
// QAction *newAction = menu.addAction("新建图头");
|
||||
// // 弹出菜单
|
||||
// QAction *selectedAction = menu.exec(ui->tableWidget->mapToGlobal(pos));
|
||||
// if (selectedAction == newAction) {
|
||||
// NewHeadDialog *dlg = new NewHeadDialog(this);
|
||||
// //
|
||||
// dlg->setAttribute(Qt::WA_DeleteOnClose);//关闭时,自动删除窗口对象
|
||||
// int result = dlg->exec();//模态对话框
|
||||
// if (result == QDialog::Accepted) {
|
||||
// // 处理用户点击了确定按钮的逻辑
|
||||
// qDebug() << "Accepted=";
|
||||
// //
|
||||
// ui->tableWidget->clear();
|
||||
// //
|
||||
// ui->tableWidget->setColumnCount(g_iCols);
|
||||
// ui->tableWidget->setRowCount(g_iRows); //动态设置行数
|
||||
// for(int i=0; i<g_iRows; i++)
|
||||
// {
|
||||
// for(int j=0; j<g_iCols; j++)
|
||||
// {
|
||||
// QTableWidgetItem* item = new QTableWidgetItem("");
|
||||
// ui->tableWidget->setItem(i, j, item);
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
// else if (result == QDialog::Rejected) {
|
||||
// // 处理用户点击了取消按钮的逻辑
|
||||
// qDebug() << "Rejected=";
|
||||
// }
|
||||
// else {
|
||||
// // 处理其他情况的逻辑
|
||||
// qDebug() << "other=";
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// QMenu menu(ui->tableWidget);
|
||||
// QAction *mergeAction = menu.addAction("合并表格");
|
||||
// QAction *refreshAction = menu.addAction("拆分表格");
|
||||
// QAction *deleteAction = menu.addAction("删除行");
|
||||
// QAction *addAction = menu.addAction("添加行");
|
||||
|
||||
// // 弹出菜单
|
||||
// QAction *selectedAction = menu.exec(ui->tableWidget->mapToGlobal(pos));
|
||||
|
||||
// if (selectedAction == mergeAction) {
|
||||
// qDebug() << "合并表格";
|
||||
// slotMerge();
|
||||
// } else if (selectedAction == deleteAction) {
|
||||
// //删除1行
|
||||
// int row = ui->tableWidget->currentRow();
|
||||
// ui->tableWidget->removeRow(row);
|
||||
// } else if (selectedAction == refreshAction) {
|
||||
// qDebug() << "拆分表格";
|
||||
// slotSplit();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
//合并
|
||||
void MainWindowCurve::slotMerge()
|
||||
{
|
||||
// QModelIndexList list = ui->tableWidget->selectionModel()->selectedIndexes();
|
||||
// if (list.size() < 2)
|
||||
// {
|
||||
// QMessageBox::warning(this, "单元格合并", "所选中单元格中为单个单元格,无法合并", "确定");
|
||||
// return;
|
||||
// }
|
||||
|
||||
// int topRow = 0;
|
||||
// int leftCol = 0;
|
||||
// int bottomRow = 0;
|
||||
// int rightCol = 0;
|
||||
|
||||
// QList<QTableWidgetSelectionRange> selectRanges = ui->tableWidget->selectedRanges();
|
||||
|
||||
// if (selectRanges.size() > 0)
|
||||
// {
|
||||
// topRow = selectRanges[0].topRow();
|
||||
// leftCol = selectRanges[0].leftColumn();
|
||||
// bottomRow = selectRanges[0].bottomRow();
|
||||
// rightCol = selectRanges[0].rightColumn();
|
||||
// }
|
||||
// for(auto range:selectRanges)
|
||||
// {
|
||||
// if(range.topRow()<topRow)
|
||||
// topRow=range.topRow();
|
||||
// if(range.leftColumn()<leftCol)
|
||||
// leftCol=range.leftColumn();
|
||||
// if(range.bottomRow()> bottomRow)
|
||||
// bottomRow=range.bottomRow();
|
||||
// if(range.rightColumn()>rightCol)
|
||||
// rightCol=range.rightColumn();
|
||||
// }
|
||||
|
||||
// int rowSpan = (bottomRow - topRow) + 1;
|
||||
// int colSpan = (rightCol - leftCol) + 1;
|
||||
// ui->tableWidget->setSpan(topRow, leftCol, rowSpan, colSpan);
|
||||
}
|
||||
|
||||
|
||||
//拆分
|
||||
void MainWindowCurve::slotSplit()
|
||||
{
|
||||
// int row,col;
|
||||
// QList<QTableWidgetSelectionRange> selectRanges = ui->tableWidget->selectedRanges();
|
||||
// if (selectRanges.size() < 2)
|
||||
// {
|
||||
// QMessageBox::warning(this, "拆分表格失败", "单元格已是最小单位,不能再进行拆分", "确定");
|
||||
// return;
|
||||
// }
|
||||
// QList<QTableWidgetItem*> selectItems = ui->tableWidget->selectedItems();
|
||||
// if(selectItems.size()==0)
|
||||
// {
|
||||
// QMessageBox::warning(this, "拆分表格失败", "请先为表格设置元素item", "确定");
|
||||
// return;
|
||||
// }
|
||||
// if(selectItems.size()>1)
|
||||
// {
|
||||
// QMessageBox::warning(this, "拆分表格失败", "非法选择", "确定");
|
||||
// return;
|
||||
// }
|
||||
// for(auto item:selectItems)
|
||||
// {
|
||||
// row= item->row();
|
||||
// col=item->column();
|
||||
// }
|
||||
|
||||
// ui->tableWidget->setSpan(row, col, 1, 1); // 设置跨度为1
|
||||
}
|
||||
|
||||
bool MainWindowCurve::eventFilter(QObject* obj, QEvent* event)
|
||||
{
|
||||
// if (obj == ui->tableWidget && event->type() == QEvent::KeyPress) {
|
||||
// QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
|
||||
// if (keyEvent->matches(QKeySequence::Paste)) {
|
||||
// onPasteExcelData();
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
return QMainWindow::eventFilter(obj, event);
|
||||
}
|
||||
|
||||
//复制粘贴事件
|
||||
void MainWindowCurve::keyPressEvent(QKeyEvent * event)
|
||||
{
|
||||
// //excel 行分是 "\n" ; 列分是 "\t"
|
||||
// if (event->matches(QKeySequence::Copy))
|
||||
// {
|
||||
// copy();
|
||||
// }
|
||||
// else if (event->matches(QKeySequence::Paste))
|
||||
// {
|
||||
// Paste();
|
||||
// }
|
||||
// else if (event->matches(QKeySequence::SelectAll))
|
||||
// {
|
||||
// ui->tableWidget->selectAll();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// QWidget::keyPressEvent(event);
|
||||
// }
|
||||
}
|
||||
|
||||
void MainWindowCurve::copy()
|
||||
{
|
||||
// QMap<int, QList<int>> selMap;//行,列
|
||||
// QList<QTableWidgetItem*> list = ui->tableWidget->selectedItems();
|
||||
// if (list.count() <= 0)
|
||||
// return;
|
||||
// for (QTableWidgetItem* item : list)
|
||||
// {
|
||||
// int rowN = ui->tableWidget->row(item);
|
||||
// int colN = ui->tableWidget->column(item);
|
||||
// selMap[rowN].append(colN);
|
||||
// }
|
||||
// QString cpStr;
|
||||
// QMap<int, QList<int>>::iterator it = selMap.begin();
|
||||
// while (it != selMap.end())
|
||||
// {
|
||||
// for (int i = 0; i < (*it).count(); i++)
|
||||
// {
|
||||
// QTableWidgetItem* item = ui->tableWidget->item(it.key(), (*it).at(i));
|
||||
// if (item)
|
||||
// {
|
||||
// cpStr.append(item->text().trimmed());
|
||||
// }
|
||||
// if (i != (*it).count() - 1)
|
||||
// cpStr.append("\t");
|
||||
// }
|
||||
// it++;
|
||||
// if (it != selMap.end())
|
||||
// {
|
||||
// cpStr.append("\n");
|
||||
// }
|
||||
// }
|
||||
// QApplication::clipboard()->setText(cpStr);
|
||||
}
|
||||
|
||||
void MainWindowCurve::Paste()
|
||||
{
|
||||
// QString pastText = QApplication::clipboard()->text();
|
||||
// QStringList rowList = pastText.split("\n", QString::KeepEmptyParts);
|
||||
// if(rowList.size()==0)
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
// if(rowList.at(rowList.size()-1)=="")
|
||||
// {
|
||||
// rowList.removeAt(rowList.size()-1);
|
||||
// }
|
||||
// QTableWidgetItem* crtItem = ui->tableWidget->currentItem();
|
||||
// int rowN, colN;
|
||||
// if (!crtItem)
|
||||
// {
|
||||
// rowN = ui->tableWidget->currentRow();
|
||||
// colN = ui->tableWidget->currentColumn();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// rowN = ui->tableWidget->row(crtItem);
|
||||
// colN = ui->tableWidget->column(crtItem);
|
||||
// }
|
||||
// for (int i = 0; i < (ui->tableWidget->rowCount() - rowN) && (i < rowList.length()); i++)
|
||||
// {
|
||||
// QStringList rowDataList = rowList.at(i).split("\t", QString::KeepEmptyParts);
|
||||
// for (int j = 0; j < (ui->tableWidget->columnCount() - colN) && (j < rowDataList.length()); j++)
|
||||
// {
|
||||
// int x = i + rowN;
|
||||
// int y = j + colN;
|
||||
|
||||
// QTableWidgetItem* item = ui->tableWidget->item(x, y);
|
||||
// if (item)
|
||||
// {
|
||||
// item->setText(rowDataList.at(j));
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ui->tableWidget->setItem(x, y, new QTableWidgetItem(rowDataList.at(j)));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
void MainWindowCurve::onPasteExcelData()
|
||||
{
|
||||
// QClipboard* clipboard = QApplication::clipboard();
|
||||
// const QString clipData = clipboard->text();
|
||||
|
||||
// if (clipData.isEmpty()) return;
|
||||
|
||||
// QList<QStringList> rowsData;
|
||||
// const QStringList rows = clipData.split('\n', QString::SkipEmptyParts);
|
||||
// for (const QString row:rows) {
|
||||
// rowsData << row.split('\t', QString::SkipEmptyParts);
|
||||
// }
|
||||
|
||||
// QTableWidget* table = ui->tableWidget;
|
||||
// const QModelIndex currentIndex = table->currentIndex();
|
||||
// const int startRow = currentIndex.isValid() ? currentIndex.row() : 0;
|
||||
// const int startCol = currentIndex.isValid() ? currentIndex.column() : 0;
|
||||
|
||||
// table->setUpdatesEnabled(false);
|
||||
// table->setRowCount(std::max(table->rowCount(), startRow + rowsData.size()));
|
||||
// table->setColumnCount(std::max(table->columnCount(), startCol + rowsData[0].size()));
|
||||
|
||||
// for (int i = 0; i < rowsData.size(); ++i) {
|
||||
// for (int j = 0; j < rowsData[i].size(); ++j) {
|
||||
// if (startRow + i >= table->rowCount()) break;
|
||||
// if (startCol + j >= table->columnCount()) break;
|
||||
|
||||
// QTableWidgetItem* item = table->item(startRow + i, startCol + j);
|
||||
// if (!item) {
|
||||
// item = new QTableWidgetItem();
|
||||
// table->setItem(startRow + i, startCol + j, item);
|
||||
// }
|
||||
// item->setText(rowsData[i][j]);
|
||||
// }
|
||||
// }
|
||||
// table->setUpdatesEnabled(true);
|
||||
}
|
||||
|
||||
|
||||
void MainWindowCurve::Open(QString fileFull)
|
||||
{
|
||||
QString strPrjname = "";
|
||||
|
|
|
|||
|
|
@ -38,21 +38,15 @@ private:
|
|||
Ui::MainWindowCurve *ui;
|
||||
|
||||
protected:
|
||||
//支持复制粘贴,暂时还未实现
|
||||
void keyPressEvent(QKeyEvent * e);
|
||||
|
||||
public:
|
||||
//图头
|
||||
bool eventFilter(QObject* obj, QEvent* event);
|
||||
void onPasteExcelData();
|
||||
|
||||
|
||||
public slots:
|
||||
void dragEnterEvent(QDragEnterEvent* event);
|
||||
void dragMoveEvent(QDragMoveEvent* event);
|
||||
void dropEvent(QDropEvent* event);
|
||||
//图头
|
||||
void copy();
|
||||
void Paste();
|
||||
|
||||
|
||||
//鼠标滚动,通知可视解释窗口
|
||||
void s_mouseWheel(QWheelEvent *event);
|
||||
|
|
@ -235,10 +229,6 @@ public slots:
|
|||
void s_ModuleOpen(); //处理算法
|
||||
//void s_Open(QString fileFull);//打开
|
||||
|
||||
//图头右键菜单响应函数
|
||||
void slotContextMenu(QPoint pos);
|
||||
void slotMerge();//合并
|
||||
void slotSplit();//拆分
|
||||
};
|
||||
|
||||
#endif // MAINWINDOWCURVE_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user