This commit is contained in:
DESKTOP-450PEFP\mainc 2026-02-05 14:53:48 +08:00
commit 5804813c57
8 changed files with 80 additions and 62 deletions

View File

@ -2475,15 +2475,17 @@ int CSlfIO::SetTableHead(int index,DWORD RecordCount,DWORD FieldCount,Slf_TABLE_
if(IsWis) return SetWisTableHead(index,RecordCount,FieldCount,FieldInfo);
else {
Slf_OBJECT_FIELD *pf=new Slf_OBJECT_FIELD[FieldCount];
QString strMojibake = ""; //乱码判断
QByteArray ArrayMojibake = strMojibake.toLocal8Bit().data();
for(int i=0;i<FieldCount;i++) {
pf[i].ArrayNum=1;
pf[i].CodeLength=FieldInfo[i].Length;
pf[i].RepCode=FieldInfo[i].RepCode;
pf[i].DefVal=-9999.0;
if(strncmp(FieldInfo[i].Unit,"",2)==0) strcpy(FieldInfo[i].Unit,"");
if(strncmp(FieldInfo[i].HZName,"",2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].HZUnit,"",2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
if(strncmp(FieldInfo[i].Unit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].Unit,"");
if(strncmp(FieldInfo[i].HZName,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].HZUnit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
int len=sizeof(pf[i].Name);
if(len>strlen(FieldInfo[i].Name)) len=strlen(FieldInfo[i].Name);
@ -2536,6 +2538,8 @@ bool CSlfIO::SetTableFieldInfo(int index,Slf_TABLE_FIELD *FieldInfo)
int FieldCount=m_SlfObjectEntry[index].FieldNum;
Slf_OBJECT_FIELD *pf=new Slf_OBJECT_FIELD[FieldCount];
GetSlfTableFieldInfo(index,pf);
QString strMojibake = ""; //乱码判断
QByteArray ArrayMojibake = strMojibake.toLocal8Bit().data();
for(int i=0;i<FieldCount;i++) {
int len=strlen(FieldInfo[i].Name);
@ -2543,20 +2547,20 @@ bool CSlfIO::SetTableFieldInfo(int index,Slf_TABLE_FIELD *FieldInfo)
strncpy(pf[i].Name,FieldInfo[i].Name,len);
pf[i].Name[len]=0;
if(strncmp(FieldInfo[i].HZName,"",2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].HZName,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
len=strlen(FieldInfo[i].HZName);
if(len>sizeof(pf[i].HZName)) len=sizeof(pf[i].HZName);
strncpy(pf[i].HZName,FieldInfo[i].HZName,sizeof(pf[i].HZName));
pf[i].HZName[len]=0;
if(strncmp(FieldInfo[i].Unit,"",2)==0) strcpy(FieldInfo[i].Unit,"");
if(strncmp(FieldInfo[i].Unit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].Unit,"");
len=strlen(FieldInfo[i].Unit);
if(len>sizeof(pf[i].Unit)) len=sizeof(pf[i].Unit);
strncpy(pf[i].Unit,FieldInfo[i].Unit,sizeof(pf[i].Unit));
pf[i].Unit[len]=0;
if(strncmp(FieldInfo[i].HZUnit,"",2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
if(strncmp(FieldInfo[i].HZUnit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
len=strlen(FieldInfo[i].HZUnit);
if(len>sizeof(pf[i].HZUnit)) len=sizeof(pf[i].HZUnit);
@ -2579,6 +2583,8 @@ bool CSlfIO::GetTableFieldInfo(int index,Slf_TABLE_FIELD *FieldInfo)
Slf_OBJECT_FIELD *pf=new Slf_OBJECT_FIELD[FieldCount];
memset(pf,0,sizeof(Slf_OBJECT_FIELD)*FieldCount);
GetSlfTableFieldInfo(index,pf);
QString strMojibake = ""; //乱码判断
QByteArray ArrayMojibake = strMojibake.toLocal8Bit().data();
for(int i=0;i<FieldCount;i++) {
FieldInfo[i].Length=pf[i].CodeLength;
FieldInfo[i].RepCode=pf[i].RepCode;
@ -2586,14 +2592,14 @@ bool CSlfIO::GetTableFieldInfo(int index,Slf_TABLE_FIELD *FieldInfo)
strncpy(FieldInfo[i].Name,pf[i].Name,sizeof(FieldInfo[i].Name));
strncpy(FieldInfo[i].HZName,pf[i].HZName,sizeof(FieldInfo[i].HZName));
if(strncmp(FieldInfo[i].HZName,"",2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].HZName,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZName,FieldInfo[i].Name);
if(strncmp(FieldInfo[i].Unit,"",2)==0) strcpy(FieldInfo[i].Unit,"");
if(strncmp(FieldInfo[i].Unit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].Unit,"");
strncpy(FieldInfo[i].Unit,pf[i].Unit,sizeof(FieldInfo[i].Unit));
strncpy(FieldInfo[i].HZUnit,pf[i].HZUnit,sizeof(FieldInfo[i].HZUnit));
if(strncmp(FieldInfo[i].HZUnit,"",2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
if(strncmp(FieldInfo[i].HZUnit,ArrayMojibake.data()/*"屯"*/,2)==0) strcpy(FieldInfo[i].HZUnit,FieldInfo[i].Unit);
FieldInfo[i].Reserved=*(DWORD *)&pf[i].Reserved;
}
delete []pf;

View File

@ -485,6 +485,21 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
ChangHeadItemProperty();
}
}
else if("背景颜色" == m_propertyData[pProperty])
{
//qDebug() << "背景颜色->改变";
//当前属性类型
if(m_strCurrentProperty == Head_Property)
{
//背景颜色
// 假设variant已经被设置为包含QColor
QColor newColor = variant.value<QColor>();
// 设置字体颜色
QBrush brush(newColor); // 使用Qt::red预定义颜色
m_formHead->m_bRefresh=false;
m_item->setBackground(brush);
}
}
else if("列宽(cm)" == m_propertyData[pProperty])
{
//qDebug() << "列宽(cm)->改变";
@ -1066,6 +1081,13 @@ void PropertyWidget::initCurveProperty(FormInfo *formInfo, QStringList strListOt
}
QColor intToQColor(int intColor) {
int red = intColor & 0xFF;
int green = (intColor >> 8) & 0xFF;
int blue = (intColor >> 16) & 0xFF;
return QColor(red, green, blue);
}
void PropertyWidget::initHeadProperty(FormHead *formHead, QTableWidget *tableWidget, QTableWidgetItem* item, int row, int col)
{
//初始化,清空
@ -1103,9 +1125,11 @@ void PropertyWidget::initHeadProperty(FormHead *formHead, QTableWidget *tableWid
m_colWidth = tableWidget->columnWidth(col)/g_dPixelPerCm;
m_rowHeight = tableWidget->rowHeight(row)/g_dPixelPerCm;
_CreateVariantPropertyItem("单元格", "图例", imagePath, VariantManager::filePathTypeId()); //"./image/胜利符号库/岩性符号/砂岩.png"
_CreateVariantPropertyItem("单元格", "图例宽(cm)", m_colWidth_Img, QVariant::Double, 0, 100);
_CreateVariantPropertyItem("单元格", "图例高(cm)", m_rowHeight_Img, QVariant::Double, 0, 100);
_CreateVariantPropertyItem("单元格", "背景颜色", m_item->background().color(), QVariant::Color);
_CreateVariantPropertyItem("文本", "内容", item->text(), QVariant::String);
_CreateVariantPropertyItem("文本", "字体", m_item->font(), QVariant::Font);

View File

@ -387,7 +387,7 @@ void FormDraw::DisplayLine_One(QJsonObject lineObjInfo)
}
}
//
if (lineObjInfo.contains("lineColorRed"))
if (lineObjInfo.contains("lineColor"))
{
lineColor.setNamedColor(lineObjInfo.value("lineColor").toString());
}

View File

@ -35,11 +35,17 @@ FormHead::FormHead(QWidget *parent, QString indexID) :
m_indexID =indexID;
m_parent = (FormMultiHeads *)parent;
// 强制使用Qt渲染引擎
//QApplication::setAttribute(Qt::AA_UseStyleSheetPropagationInWidgetStyles, true);
//取消全局样式表
// ui->tableWidget->setStyleSheet("");
// ui->tableWidget->setAutoFillBackground(true);
//设置样式表,不显示竖直边框
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->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->setSizeAdjustPolicy(QTableWidget::AdjustToContents); //表格大小随内容改变,会占满
@ -158,9 +164,18 @@ void FormHead::Init(int iRows, int iCols)
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);
// 设置背景色
QColor color(255, 255, 255, 255);
QBrush HeadBrush = QBrush(color);
HeadBrush.setStyle(Qt::SolidPattern);
item->setBackground(HeadBrush);
item->setData(Qt::BackgroundRole, color); // 双重保险
// 设置字体颜色
QColor colorTxt(0, 0, 0, 255);
item->setForeground(QBrush(colorTxt));
//
ui->tableWidget->setItem(i, j, item);
//---------------------------
QString imagePath = ""; //"./image/胜利符号库/解释结论符号/油层.svg"
@ -208,6 +223,7 @@ void FormHead::Init(int iRows, int iCols)
}
}
}
//初始化完成后再连接信号槽,防止数据初始化时激活信号
connect(ui->tableWidget, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(onItemChanged(QTableWidgetItem*)));
connect(ui->tableWidget, SIGNAL(itemSelectionChanged()), this, SLOT(onItemSelectionChanged()));

View File

@ -21,14 +21,20 @@ FormMultiHeads::FormMultiHeads(QWidget *parent) :
ui->setupUi(this);
//-------------------------------------
// 强制使用Qt渲染引擎
//QApplication::setAttribute(Qt::AA_UseStyleSheetPropagationInWidgetStyles, true);
//取消全局样式表
// ui->tableWidget->setStyleSheet("");
// ui->tableWidget->setAutoFillBackground(true);
//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->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(); //列

View File

@ -59,8 +59,6 @@ MainWindow::MainWindow(QWidget *parent) :
this->setWindowIcon(QIcon(":/qrc/logo.ico"));
//加载样式
//loadStyle(":/qrc/qss/lightblue.css");
//loadStyle(":/qrc/qss/blacksoft.css");
loadStyle(":/qrc/qss/flatgray.css");
ReadConfig();

View File

@ -4008,42 +4008,10 @@ void MainWindowCurve::DisplayLine_One(QJsonObject lineObjInfo, QString strTrackN
}
}
//
if (lineObjInfo.contains("lineColorRed"))
if (lineObjInfo.contains("lineColor"))
{
QJsonValue value = lineObjInfo.value("lineColorRed");
if (value.isDouble()) {
lineColor.setRed(value.toInt());
//qDebug() << "lineColorRed:" << QString::number(value.toInt());
}
lineColor.setNamedColor(lineObjInfo.value("lineColor").toString());
}
//
if (lineObjInfo.contains("lineColorGreen"))
{
QJsonValue value = lineObjInfo.value("lineColorGreen");
if (value.isDouble()) {
lineColor.setGreen(value.toInt());
//qDebug() << "lineColorGreen:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("lineColorBlue"))
{
QJsonValue value = lineObjInfo.value("lineColorBlue");
if (value.isDouble()) {
lineColor.setBlue(value.toInt());
//qDebug() << "lineColorBlue:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("lineColorAlpha"))
{
QJsonValue value = lineObjInfo.value("lineColorAlpha");
if (value.isDouble()) {
lineColor.setAlpha(value.toInt());
//qDebug() << "lineColorAlpha:" << QString::number(value.toInt());
}
}
QString folderPath = GetLogdataPath();
folderPath = folderPath + g_prjname;

View File

@ -472,21 +472,21 @@ margin:4px;
border-image:url(:/qrc/qss/flatgray/branch_close.png);
}
QTreeView,QListView,QTableView,QSplitter::handle,QTreeView::branch{
QTreeView,QListView,QSplitter::handle,QTreeView::branch{
background:#FFFFFF;
}
QTableView::item:selected,QListView::item:selected,QTreeView::item:selected{
QListView::item:selected,QTreeView::item:selected{
color:#57595B;
background:#E4E4E4;
}
QTableView::item:hover,QListView::item:hover,QTreeView::item:hover,QHeaderView,QHeaderView::section,QTableCornerButton:section{
QListView::item:hover,QTreeView::item:hover,QHeaderView,QHeaderView::section,QTableCornerButton:section{
color:#57595B;
background:#F6F6F6;
}
QTableView::item,QListView::item,QTreeView::item{
QListView::item,QTreeView::item{
padding:1px;
margin:0px;
border:0px;