logplus/logPlus/wellheader.cpp

103 lines
2.4 KiB
C++
Raw Normal View History

2026-04-21 09:02:09 +08:00
#include "wellheader.h"
#include "formwell.h"
#include "CallManage.h"
#include <QDebug>
#include <QMimeData>
#include <QPushButton>
#include <QVBoxLayout>
#include <QMenu>
#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, "");
}
}