diff --git a/Slfio/src/slf.cpp b/Slfio/src/slf.cpp index 4414a2b..4ddd998 100644 --- a/Slfio/src/slf.cpp +++ b/Slfio/src/slf.cpp @@ -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;istrlen(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;isizeof(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改变"; + //当前属性类型 + if(m_strCurrentProperty == Head_Property) + { + //背景颜色 + // 假设variant已经被设置为包含QColor + QColor newColor = variant.value(); + // 设置字体颜色 + 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); diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index f33fcff..1a37c93 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -387,7 +387,7 @@ void FormDraw::DisplayLine_One(QJsonObject lineObjInfo) } } // - if (lineObjInfo.contains("lineColorRed")) + if (lineObjInfo.contains("lineColor")) { lineColor.setNamedColor(lineObjInfo.value("lineColor").toString()); } diff --git a/logPlus/formhead.cpp b/logPlus/formhead.cpp index 327f20c..0fdd510 100644 --- a/logPlus/formhead.cpp +++ b/logPlus/formhead.cpp @@ -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())); diff --git a/logPlus/formmultiheads.cpp b/logPlus/formmultiheads.cpp index cc2d959..0011486 100644 --- a/logPlus/formmultiheads.cpp +++ b/logPlus/formmultiheads.cpp @@ -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(); //列 diff --git a/logPlus/mainwindow.cpp b/logPlus/mainwindow.cpp index 2e7d390..6b5427a 100644 --- a/logPlus/mainwindow.cpp +++ b/logPlus/mainwindow.cpp @@ -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(); diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index fb35c39..0af0ccd 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -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; diff --git a/logPlus/qrc/qss/flatgray.css b/logPlus/qrc/qss/flatgray.css index 374104f..1ff72d6 100644 --- a/logPlus/qrc/qss/flatgray.css +++ b/logPlus/qrc/qss/flatgray.css @@ -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;