From 0f929218932ee017f820607f4b308a210234dd92 Mon Sep 17 00:00:00 2001 From: "DESKTOP-450PEFP\\mainc" Date: Tue, 21 Apr 2026 09:02:09 +0800 Subject: [PATCH] =?UTF-8?q?header=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logPlus/wellheader.cpp | 102 +++++++++++++++++++++++++++++++++++++++++ logPlus/wellheader.h | 47 +++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 logPlus/wellheader.cpp create mode 100644 logPlus/wellheader.h diff --git a/logPlus/wellheader.cpp b/logPlus/wellheader.cpp new file mode 100644 index 0000000..353ff30 --- /dev/null +++ b/logPlus/wellheader.cpp @@ -0,0 +1,102 @@ +#include "wellheader.h" +#include "formwell.h" +#include "CallManage.h" +#include +#include +#include +#include +#include +#include "PropertyWidget.h" + +//曲线名称(单个) +WellHeader::WellHeader(QWidget *parent, QString strSlfName, QString strWellName) : + QWidget(parent) +{ + + m_strSlfName = strSlfName; + m_strWellName = strWellName; + + m_Color = Qt::black; +} + +WellHeader::~WellHeader() +{ +} + +void WellHeader::initProperty(QJsonObject obj) +{ + +} + +QJsonObject WellHeader::makeJson() +{ + QJsonObject rootObj; + return rootObj; +} +void WellHeader::setBorderFlags(BorderFlags flags) +{ + m_BorderFlags = flags; +} +void WellHeader::paintEvent(QPaintEvent* event) +{ + QPainter painter(this); + QRect rect = this->rect(); + //背景透明 + painter.fillRect(rect.left(), rect.top(), rect.width(), rect.height(), QColor(0, 0, 0, 0)); //QColor(67, 67, 67, 100) + + QString strShowTxt = ""; + painter.setBrush(Qt::NoBrush); // 确保文字不被填充色遮挡 + painter.setFont(m_Font); + painter.setPen(m_Color); // fontColor QColor(220, 220, 220) + painter.drawText(rect, Qt::AlignCenter, m_strWellName); + + int nbw = m_pFormWell->getBorderGridProperty().m_nWidth; + painter.setPen(QPen(m_pFormWell->getBorderGridProperty().m_clor, nbw)); + + int t = rect.top(); + int b = rect.bottom(); + int l = rect.left(); + int r = rect.right(); + // 上边框 + if (m_BorderFlags & TopBorder) { + painter.drawLine(l, t + nbw / 2, r, t + nbw / 2); + } + // 下边框 + if (m_BorderFlags & BottomBorder) { + painter.drawLine(l, b - nbw / 2, r, b - nbw / 2); + } + // 左边框 + if (m_BorderFlags & LeftBorder) { + painter.drawLine(l + nbw / 2, t, l + nbw / 2, b); + } + // 右边框 + if (m_BorderFlags & RightBorder) { + painter.drawLine(r, t, r, b); + } + + QWidget::paintEvent(event); +} + +void WellHeader::mousePressEvent(QMouseEvent *event) +{ + QWidget::mousePressEvent(event); + if (event->button() == Qt::LeftButton) + { + m_press = true; + } +} + +void WellHeader::mouseReleaseEvent(QMouseEvent *event) +{ + if (m_press)//如果鼠标左键被释放 + { + m_press = false;//按下标志置fasle,形成互斥 + + PropertyService()->initWellProperty(m_strUuid, m_strSlfName, m_strWellName, + m_pFormWell->m_iY1, m_pFormWell->m_iY2, m_pFormWell); + + //选中单元格 + emit CallManage::getInstance()->sig_Raise(m_strUuid, m_strSlfName, m_strWellName, "", "", 1, ""); + } +} + diff --git a/logPlus/wellheader.h b/logPlus/wellheader.h new file mode 100644 index 0000000..f512e17 --- /dev/null +++ b/logPlus/wellheader.h @@ -0,0 +1,47 @@ +#ifndef WELLHEADER_H +#define WELLHEADER_H + +#include +#include +#include + +#include "common.h" + +#pragma execution_character_set("utf-8") + +class FormWell; +class WellHeader : public QWidget +{ + Q_OBJECT + +public: + explicit WellHeader(QWidget *parent = nullptr, QString strSlfName="", QString strWellName=""); + ~WellHeader(); + + void initProperty(QJsonObject obj); + QJsonObject makeJson(); + + void setBorderFlags(BorderFlags flags); +private: + +protected: + void paintEvent(QPaintEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + +public slots: +public: + QString m_strUuid; + QString m_strSlfName; + QString m_strWellName; + + QFont m_Font = QFont("微软雅黑", 14); //显示名称字体 + QColor m_Color; //颜色 + bool m_press;//判断鼠标是否按下 + BorderFlags m_BorderFlags; + FormWell* m_pFormWell = NULL; + +}; + + +#endif // WELLHEADER_H