绘制边框属性添加到基类FormBase

This commit is contained in:
DESKTOP-450PEFP\mainc 2026-04-21 11:21:57 +08:00
parent 0f92921893
commit deb8fdfe2c
15 changed files with 237 additions and 246 deletions

64
logPlus/FormBase.cpp Normal file
View File

@ -0,0 +1,64 @@
#include "FormBase.h"
#include "formwell.h"
#include "CallManage.h"
#include <QDebug>
#include <QMimeData>
#include <QPushButton>
#include <QVBoxLayout>
#include <QMenu>
#include "PropertyWidget.h"
//
FormBase::FormBase(QWidget *parent, QString strSlfName, QString strWellName) :
QWidget(parent)
{
m_pFormWell = qobject_cast<FormWell*>(parent);
m_strSlfName = strSlfName;
m_strWellName = strWellName;
m_Color = Qt::black;
}
FormBase::~FormBase()
{
}
void FormBase::setBorderFlags(BorderFlags flags)
{
m_BorderFlags = flags;
}
void FormBase::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)
int nbw = m_pFormWell->getBorderGridProperty().m_nWidth;
painter.setPen(QPen(m_pFormWell->getBorderGridProperty().m_clor, nbw,
(Qt::PenStyle)m_pFormWell->getBorderGridProperty().m_nType));
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);
}

42
logPlus/FormBase.h Normal file
View File

@ -0,0 +1,42 @@
#ifndef FORMBASE_H
#define FORMBASE_H
#include <QWidget>
#include <QPainter>
#include <QPaintEvent>
#include "common.h"
#pragma execution_character_set("utf-8")
class FormWell;
class FormBase : public QWidget
{
Q_OBJECT
public:
explicit FormBase(QWidget *parent = nullptr, QString strSlfName="", QString strWellName="");
~FormBase();
void setBorderFlags(BorderFlags flags);
private:
protected:
void paintEvent(QPaintEvent *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 // FORMBASE_H

View File

@ -33,16 +33,13 @@ extern int g_iSupport3D;
extern void AppendConsole(Priority priority, const QString &output); extern void AppendConsole(Priority priority, const QString &output);
//曲线绘制(多个) //曲线绘制(多个)
FormDraw::FormDraw(QWidget *parent, QString strWellName, QString strTrackName) : FormDraw::FormDraw(QWidget *parent, QString strSlfName, QString strWellName, QString strTrackName) :
QWidget(parent), FormBase(parent, strSlfName, strWellName),
ui(new Ui::FormDraw) ui(new Ui::FormDraw)
{ {
ui->setupUi(this); ui->setupUi(this);
setAcceptDrops(true); setAcceptDrops(true);
m_pFWell = qobject_cast<FormWell*>(parent);
m_strWellName = strWellName;
m_strTrackName = strTrackName; m_strTrackName = strTrackName;
m_nSltk=15.0;//杆状图长度 m_nSltk=15.0;//杆状图长度
@ -2714,11 +2711,6 @@ void FormDraw::crossTrackSetting(bool bcross)
} }
void FormDraw::setBorderFlags(BorderFlags flags)
{
m_BorderFlags = flags;
}
void FormDraw::addCusPlot(QMyCustomPlot* plot) void FormDraw::addCusPlot(QMyCustomPlot* plot)
{ {
m_vecCurv.push_back(plot); m_vecCurv.push_back(plot);
@ -2792,43 +2784,6 @@ void FormDraw::changeGridProperty(QString strGroup, int nInv, int nWidth, QColor
} }
} }
void FormDraw::paintEvent(QPaintEvent*)
{
QPainter painter(this);
QRect rect = this->rect();
rect.setLeft(rect.left() + 1);
rect.setTop(rect.top() + 1);
// 3. 准备绘制边框
painter.save();
painter.setPen(QPen(m_pFWell->getBorderGridProperty().m_clor, m_pFWell->getBorderGridProperty().m_nWidth)); // 颜色、宽度可自定义
// 上边框
if (m_BorderFlags & TopBorder) {
painter.drawLine(rect.topLeft(), rect.topRight());
}
// 下边框
if (m_BorderFlags & BottomBorder) {
painter.drawLine(rect.bottomLeft(), rect.bottomRight());
}
// 左边框
if (m_BorderFlags & LeftBorder) {
painter.drawLine(rect.topLeft(), rect.bottomLeft());
}
// 右边框
if (m_BorderFlags & RightBorder) {
QPoint pt = rect.topLeft();
QPoint pt2 = rect.bottomRight();
// 此处右边界根据道宽绘制
int ntx = (m_nLeftDao*m_nTrackW * g_dPixelPerCm)+1 + m_nTrackW * g_dPixelPerCm - 2;
pt.setX(ntx);
pt2.setX(ntx);
painter.drawLine(pt, pt2);
}
painter.restore();
}
QMyCustomPlot* FormDraw::addTableLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QStringList listOtherProperty) QMyCustomPlot* FormDraw::addTableLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QStringList listOtherProperty)
{ {
if (strLineName == "FRAC_HOLE.TABLE" || strLineName == "WORDS_RELUST" || strLineName == "RESULT" if (strLineName == "FRAC_HOLE.TABLE" || strLineName == "WORDS_RELUST" || strLineName == "RESULT"

View File

@ -10,8 +10,7 @@
#include "LogIO.h" #include "LogIO.h"
#include "MemRdWt.h" #include "MemRdWt.h"
#include "FormLine.h" #include "FormLine.h"
#include "common.h" #include "FormBase.h"
#include "formwell.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
@ -21,12 +20,12 @@ namespace Ui {
class FormDraw; class FormDraw;
} }
class FormDraw : public QWidget class FormDraw : public FormBase
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit FormDraw(QWidget *parent = nullptr, QString m_strWellName="", QString strTrackName=""); explicit FormDraw(QWidget *parent, QString strSlfName, QString m_strWellName="", QString strTrackName="");
~FormDraw(); ~FormDraw();
void setDrawData(QStringList slist, QJsonObject objInfo); void setDrawData(QStringList slist, QJsonObject objInfo);
@ -65,7 +64,6 @@ public:
// 跨道设置 // 跨道设置
void crossTrackSetting(bool bcross = false); void crossTrackSetting(bool bcross = false);
void setBorderFlags(BorderFlags flags);
// 添加绘图 // 添加绘图
void addCusPlot(QMyCustomPlot* plot); void addCusPlot(QMyCustomPlot* plot);
// 绘图是否有显示横线格子; // 绘图是否有显示横线格子;
@ -85,9 +83,8 @@ public:
private: private:
Ui::FormDraw *ui; Ui::FormDraw *ui;
FormWell* m_pFWell = NULL;
protected: protected:
void paintEvent(QPaintEvent *event);
QMyCustomPlot* addTableLine(QString strUuid, QString strSlfName, QString strWellName, QMyCustomPlot* addTableLine(QString strUuid, QString strSlfName, QString strWellName,
QString strTrackName, QString strLineName, QStringList listOtherProperty={}); QString strTrackName, QString strLineName, QStringList listOtherProperty={});
@ -103,9 +100,6 @@ public slots:
void setColWidth(float fNewWidth); void setColWidth(float fNewWidth);
public: public:
QString m_strUuid;
QString m_strSlfName = "";
QString m_strWellName;
QString m_strTrackName; QString m_strTrackName;
double m_nTrackW = 0; double m_nTrackW = 0;

View File

@ -8,27 +8,28 @@
extern int g_iOneWidth; //道宽 extern int g_iOneWidth; //道宽
//曲线名称栏(表格) //曲线名称栏(表格)
FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName) : FormTrack::FormTrack(QWidget *parent, QString strSlfName, QString strWellName, QString strTrackName) :
QWidget(parent), FormBase(parent, strSlfName, strWellName),
ui(new Ui::FormTrack) ui(new Ui::FormTrack)
{ {
ui->setupUi(this); ui->setupUi(this);
m_pFWell = qobject_cast<FormWell*>(parent);
m_strTrackUuid = getUUid(); m_strTrackUuid = getUUid();
m_strWellName = strWellName;
m_strTrackName = strTrackName; m_strTrackName = strTrackName;
//单元格委托 //单元格委托
//m_delegate = new NoLRBorderDelegate(); //m_delegate = new NoLRBorderDelegate();
//隐藏网格线 //隐藏网格线
//ui->tableWidget->setVisible(false);
ui->tableWidget->setShowGrid(false); ui->tableWidget->setShowGrid(false);
//设置样式表竖直边框宽度为0隐藏 //设置样式表竖直边框宽度为0隐藏
ui->tableWidget->setStyleSheet( "QTableView::item {border-left: 0px solid black;} \
QTableView::item:selected {border-left: 0px solid black; color:#57595B; background:#E4E4E4;}\ ui->tableWidget->setStyleSheet("QTableView {border: 0px solid black;} QTableView::item {border: 0px solid black;} \
QTableView::item {border-right: 0px solid black;} \ QTableView::item:selected {color:#57595B; background:#E4E4E4;}");
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; color:#57595B; background:#E4E4E4;}\
// QTableView::item {border-right: 0px solid black;} \
// QTableView::item:selected {border-right: 0px solid black;}");
//表格绑定井名,道名 //表格绑定井名,道名
ui->tableWidget->m_strWellName = strWellName; ui->tableWidget->m_strWellName = strWellName;
@ -175,43 +176,41 @@ FormInfo* FormTrack::getFormInfoByParameters(QString strUuid, QString strWellNam
return NULL; return NULL;
} }
void FormTrack::setBorderFlags(BorderFlags flags) //
{ //void FormTrack::paintEvent(QPaintEvent *event)
m_BorderFlags = flags; //{
} // QWidget::paintEvent(event);
//
void FormTrack::paintEvent(QPaintEvent *event) // QPainter painter(this);
{ // QRect rect = this->rect();
QWidget::paintEvent(event); //
// rect.setLeft(rect.left() + 1);
QPainter painter(this); // rect.setTop(rect.top() + 1);
QRect rect = this->rect(); // // 绘制边框
// painter.save();
rect.setLeft(rect.left() + 1); // painter.setPen(QPen(m_pFWell->getBorderGridProperty().m_clor,
rect.setTop(rect.top() + 1); // m_pFWell->getBorderGridProperty().m_nWidth,
// 绘制边框 // (Qt::PenStyle)m_pFWell->getBorderGridProperty().m_nType)); // 颜色、宽度可自定义
painter.save(); //
painter.setPen(QPen(m_pFWell->getBorderGridProperty().m_clor, m_pFWell->getBorderGridProperty().m_nWidth)); // 颜色、宽度可自定义 // // 上边框
// if (m_BorderFlags & TopBorder) {
// 上边框 // painter.drawLine(rect.topLeft(), rect.topRight());
if (m_BorderFlags & TopBorder) { // }
painter.drawLine(rect.topLeft(), rect.topRight()); // // 下边框
} // if (m_BorderFlags & BottomBorder) {
// 下边框 // painter.drawLine(rect.bottomLeft(), rect.bottomRight());
if (m_BorderFlags & BottomBorder) { // }
painter.drawLine(rect.bottomLeft(), rect.bottomRight()); // // 左边框
} // if (m_BorderFlags & LeftBorder) {
// 左边框 // painter.drawLine(rect.topLeft(), rect.bottomLeft());
if (m_BorderFlags & LeftBorder) { // }
painter.drawLine(rect.topLeft(), rect.bottomLeft()); // // 右边框
} // if (m_BorderFlags & RightBorder) {
// 右边框 // painter.drawLine(rect.topRight(), rect.bottomRight());
if (m_BorderFlags & RightBorder) { // }
painter.drawLine(rect.topRight(), rect.bottomRight()); //
} // painter.restore();
//}
painter.restore();
}
// //
// void FormTrack::setTrackPropert(QJsonObject trackObj) // void FormTrack::setTrackPropert(QJsonObject trackObj)

View File

@ -4,50 +4,20 @@
#include <QWidget> #include <QWidget>
#include "forminfo.h" #include "forminfo.h"
#include <QStyledItemDelegate> #include <QStyledItemDelegate>
#include "common.h" #include "FormBase.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
namespace Ui { namespace Ui {
class FormTrack; class FormTrack;
} }
class FormWell;
//class NoLRBorderDelegate : public QStyledItemDelegate
//{
//public:
// void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
// {
// // 获取原始矩形大小
// QRect rect = option.rect;
// // 修改矩形大小,去除左右边框 class FormTrack : public FormBase
// rect.setX(rect.x()+3);
// rect.setWidth(rect.width()-4);
// //rect.setWidth(0);
// rect.setY(rect.y()+4);
// rect.setHeight(rect.height()-7);
// // 构造新的选项
// QStyleOptionViewItem newOption(option);
// newOption.rect = rect;
// // 绘制单元格内部内容
// QStyledItemDelegate::paint(painter, newOption, index);
// // 绘制上下边框线
//// painter->setPen(QPen(Qt::gray));
//// painter->drawLine(option.rect.topLeft(), option.rect.topRight());
//// painter->drawLine(option.rect.bottomLeft(), option.rect.bottomRight());
// }
//};
class FormTrack : public QWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit FormTrack(QWidget *parent = nullptr, QString strWellName="", QString strTrackName=""); explicit FormTrack(QWidget *parent, QString strSlfName = "", QString strWellName="", QString strTrackName="");
~FormTrack(); ~FormTrack();
FormInfo* getFormInfo(); FormInfo* getFormInfo();
@ -57,25 +27,21 @@ public:
FormInfo* getFormInfoByParameters(QString strUuid, QString strWellName, FormInfo* getFormInfoByParameters(QString strUuid, QString strWellName,
QString strTrackName, QString strLineName); QString strTrackName, QString strLineName);
void setBorderFlags(BorderFlags flags);
private: private:
Ui::FormTrack *ui; Ui::FormTrack *ui;
FormWell* m_pFWell = NULL;
protected: protected:
void paintEvent(QPaintEvent *event); //void paintEvent(QPaintEvent *event);
public: public:
QString m_strUuid;
// 道ID // 道ID
QString m_strTrackUuid = ""; QString m_strTrackUuid = "";
QString m_strWellName;
QString m_strTrackName; QString m_strTrackName;
FormInfo *m_formInfo = NULL; FormInfo *m_formInfo = NULL;
// 创建自定义单元格委托 // 创建自定义单元格委托
//NoLRBorderDelegate *m_delegate; //NoLRBorderDelegate *m_delegate;
BorderFlags m_BorderFlags;
public: public:
void Add(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QStringList listOtherProperty={}); void Add(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QStringList listOtherProperty={});

View File

@ -11,17 +11,17 @@
//曲线名称(单个) //曲线名称(单个)
FormTrackTop::FormTrackTop(QWidget *parent, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor) : FormTrackTop::FormTrackTop(QWidget *parent, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor) :
QWidget(parent), FormBase(parent, strSlfName, strWellName),
ui(new Ui::FormTrackTop) ui(new Ui::FormTrackTop)
{ {
ui->setupUi(this); ui->setupUi(this);
// //
setAcceptDrops(true); setAcceptDrops(true);
m_pFWell = qobject_cast<FormWell*>(parent); //m_pFWell = qobject_cast<FormWell*>(parent);
m_strSlfName = strSlfName; //m_strSlfName = strSlfName;
m_strWellName = strWellName; //m_strWellName = strWellName;
m_strTrackName = strTrackName; m_strTrackName = strTrackName;
m_font = QFont("微软雅黑", 10); m_font = QFont("微软雅黑", 10);
@ -33,10 +33,10 @@ FormTrackTop::~FormTrackTop()
delete ui; delete ui;
} }
void FormTrackTop::setBorderFlags(BorderFlags flags) // void FormTrackTop::setBorderFlags(BorderFlags flags)
{ // {
m_BorderFlags = flags; // m_BorderFlags = flags;
} // }
void FormTrackTop::setTrackTopPropert(QJsonObject topObj) void FormTrackTop::setTrackTopPropert(QJsonObject topObj)
{ {
@ -68,7 +68,7 @@ QJsonObject FormTrackTop::makeJson()
void FormTrackTop::paintEvent(QPaintEvent* event) void FormTrackTop::paintEvent(QPaintEvent* event)
{ {
QWidget::paintEvent(event); FormBase::paintEvent(event);
QPainter painter(this); QPainter painter(this);
QRect rect = this->rect(); QRect rect = this->rect();
@ -96,30 +96,32 @@ void FormTrackTop::paintEvent(QPaintEvent* event)
} }
painter.drawText(rect.left(), rect.top(), rect.width(), rect.height(), Qt::AlignCenter, text); painter.drawText(rect.left(), rect.top(), rect.width(), rect.height(), Qt::AlignCenter, text);
rect.setLeft(rect.left() + 1); //rect.setLeft(rect.left() + 1);
rect.setTop(rect.top() + 1); //rect.setTop(rect.top() + 1);
// 3. 准备绘制边框 //// 3. 准备绘制边框
painter.save(); //painter.save();
painter.setPen(QPen(m_pFWell->getBorderGridProperty().m_clor, m_pFWell->getBorderGridProperty().m_nWidth)); // 颜色、宽度可自定义 //painter.setPen(QPen(m_pFWell->getBorderGridProperty().m_clor,
// m_pFWell->getBorderGridProperty().m_nWidth,
// (Qt::PenStyle)m_pFWell->getBorderGridProperty().m_nType)); // 颜色、宽度可自定义
// 上边框 //// 上边框
if (m_BorderFlags & TopBorder) { //if (m_BorderFlags & TopBorder) {
painter.drawLine(rect.topLeft(), rect.topRight()); // painter.drawLine(rect.topLeft(), rect.topRight());
} //}
// 下边框 //// 下边框
if (m_BorderFlags & BottomBorder) { //if (m_BorderFlags & BottomBorder) {
painter.drawLine(rect.bottomLeft(), rect.bottomRight()); // painter.drawLine(rect.bottomLeft(), rect.bottomRight());
} //}
// 左边框 //// 左边框
if (m_BorderFlags & LeftBorder) { //if (m_BorderFlags & LeftBorder) {
painter.drawLine(rect.topLeft(), rect.bottomLeft()); // painter.drawLine(rect.topLeft(), rect.bottomLeft());
} //}
// 右边框 //// 右边框
if (m_BorderFlags & RightBorder) { //if (m_BorderFlags & RightBorder) {
painter.drawLine(rect.topRight(), rect.bottomRight()); // painter.drawLine(rect.topRight(), rect.bottomRight());
} //}
painter.restore(); //painter.restore();

View File

@ -8,24 +8,22 @@
#include <QJsonDocument> #include <QJsonDocument>
#include <QJsonObject> #include <QJsonObject>
#include <QJsonArray> #include <QJsonArray>
#include "common.h" #include "FormBase.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
namespace Ui { namespace Ui {
class FormTrackTop; class FormTrackTop;
} }
class FormWell;
class FormTrackTop : public QWidget class FormTrackTop : public FormBase
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit FormTrackTop(QWidget *parent = nullptr, QString strSlfName="", QString strWellName="", QString strTrackName="", QString strLineName="", QColor lineColor=QColor(255,0,0)); explicit FormTrackTop(QWidget*, QString strSlfName="", QString strWellName="", QString strTrackName="", QString strLineName="", QColor lineColor=QColor(255,0,0));
~FormTrackTop(); ~FormTrackTop();
void setBorderFlags(BorderFlags flags);
void setTrackTopPropert(QJsonObject topObj); void setTrackTopPropert(QJsonObject topObj);
private: private:
Ui::FormTrackTop *ui; Ui::FormTrackTop *ui;
@ -41,9 +39,6 @@ public slots:
public: public:
QString m_strUuid;
QString m_strSlfName;
QString m_strWellName;
QString m_strTrackName; QString m_strTrackName;
QString m_strLineName; QString m_strLineName;
@ -53,8 +48,6 @@ public:
QFont m_font; QFont m_font;
QColor m_fontColor;//颜色 QColor m_fontColor;//颜色
BorderFlags m_BorderFlags;
public: public:
@ -64,7 +57,6 @@ public:
private: private:
QPoint startPosition; QPoint startPosition;
FormWell* m_pFWell = NULL;
}; };
#endif // FormTrackTop_H #endif // FormTrackTop_H

View File

@ -232,8 +232,8 @@ QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
ui->tableWidget->setRowHeight(i, m_nObjLyrH); ui->tableWidget->setRowHeight(i, m_nObjLyrH);
//曲线名称栏 //曲线名称栏
formTrack = new FormTrack(this, strWellName, strTrackName); formTrack = new FormTrack(this, strSlfName, strWellName, strTrackName);
formTrack->setBorderFlags(BorderFlags(BottomBorder |RightBorder)); formTrack->setBorderFlags(BorderFlags(BottomBorder | RightBorder));
formTrack->setFixedWidth(dW * g_dPixelPerCm); formTrack->setFixedWidth(dW * g_dPixelPerCm);
// if ("curveObject" == strType) // if ("curveObject" == strType)
//formTrack->setFixedWidth(20); //formTrack->setFixedWidth(20);
@ -275,7 +275,7 @@ QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
ui->tableWidget->setRowHeight(i, (int)iHeightOfScreen); ui->tableWidget->setRowHeight(i, (int)iHeightOfScreen);
//曲线绘制栏 //曲线绘制栏
FormDraw *formDraw = new FormDraw(this, strWellName, strTrackName); FormDraw *formDraw = new FormDraw(this, strSlfName, strWellName, strTrackName);
formDraw->setBorderFlags(BorderFlags(BottomBorder | RightBorder)); formDraw->setBorderFlags(BorderFlags(BottomBorder | RightBorder));
vec << formDraw; vec << formDraw;
// //
@ -346,7 +346,9 @@ void FormWell::paintEvent(QPaintEvent *event)
rect.setTop(rect.top() + 1); rect.setTop(rect.top() + 1);
// 3. 准备绘制边框 // 3. 准备绘制边框
painter.save(); painter.save();
painter.setPen(QPen(m_borderProperty.m_clor, m_borderProperty.m_nWidth)); // 颜色、宽度可自定义 painter.setPen(QPen(m_borderProperty.m_clor,
m_borderProperty.m_nWidth,
(Qt::PenStyle)m_borderProperty.m_nType)); // 颜色、宽度可自定义
// 上边框 // 上边框
if (m_BorderFlags & TopBorder) { if (m_BorderFlags & TopBorder) {

View File

@ -35,6 +35,7 @@ SOURCES += \
DepPairs.cpp \ DepPairs.cpp \
DrawNrad.cpp \ DrawNrad.cpp \
DrawTvd.cpp \ DrawTvd.cpp \
FormBase.cpp \
GeoIndicatorGenerator.cpp \ GeoIndicatorGenerator.cpp \
Gradient.cpp \ Gradient.cpp \
InDefTableDlg.cpp \ InDefTableDlg.cpp \
@ -90,7 +91,8 @@ SOURCES += \
transparentdraggableSelectRect.cpp \ transparentdraggableSelectRect.cpp \
transparentdraggableimage.cpp \ transparentdraggableimage.cpp \
variantfactory.cpp \ variantfactory.cpp \
variantmanager.cpp variantmanager.cpp \
wellheader.cpp
HEADERS += \ HEADERS += \
../CallManage/CallManage.h \ ../CallManage/CallManage.h \
@ -102,6 +104,7 @@ HEADERS += \
DraggablePixmap.h \ DraggablePixmap.h \
DrawNrad.h \ DrawNrad.h \
DrawTvd.h \ DrawTvd.h \
FormBase.h \
GeoIndicatorGenerator.h \ GeoIndicatorGenerator.h \
Gradient.h \ Gradient.h \
InDefTableDlg.h \ InDefTableDlg.h \
@ -156,7 +159,8 @@ HEADERS += \
transparentdraggableSelectRect.h \ transparentdraggableSelectRect.h \
transparentdraggableimage.h \ transparentdraggableimage.h \
variantfactory.h \ variantfactory.h \
variantmanager.h variantmanager.h \
wellheader.h
FORMS += \ FORMS += \
InDefTable.ui \ InDefTable.ui \

View File

@ -50,6 +50,7 @@
<QtMoc Include="formhead.h" /> <QtMoc Include="formhead.h" />
<QtMoc Include="formmultiheads.h" /> <QtMoc Include="formmultiheads.h" />
<QtMoc Include="fracsel.h" /> <QtMoc Include="fracsel.h" />
<QtMoc Include="FormBase.h" />
<ClInclude Include="GeoIndicatorGenerator.h" /> <ClInclude Include="GeoIndicatorGenerator.h" />
<ClInclude Include="Gradient.h" /> <ClInclude Include="Gradient.h" />
<QtMoc Include="mainwindowsplitter.h" /> <QtMoc Include="mainwindowsplitter.h" />
@ -162,6 +163,7 @@
<ClCompile Include="DrawTvd.cpp" /> <ClCompile Include="DrawTvd.cpp" />
<ClCompile Include="fileedit.cpp" /> <ClCompile Include="fileedit.cpp" />
<ClCompile Include="fileopenthread.cpp" /> <ClCompile Include="fileopenthread.cpp" />
<ClCompile Include="FormBase.cpp" />
<ClCompile Include="formdraw.cpp" /> <ClCompile Include="formdraw.cpp" />
<ClCompile Include="formhead.cpp" /> <ClCompile Include="formhead.cpp" />
<ClCompile Include="forminfo.cpp" /> <ClCompile Include="forminfo.cpp" />

View File

@ -319,6 +319,9 @@
<QtMoc Include="wellheader.h"> <QtMoc Include="wellheader.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</QtMoc> </QtMoc>
<QtMoc Include="FormBase.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="backgrounddelegate.cpp"> <ClCompile Include="backgrounddelegate.cpp">
@ -666,6 +669,9 @@
<ClCompile Include="wellheader.cpp"> <ClCompile Include="wellheader.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="FormBase.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<QtRcc Include="logplus.qrc"> <QtRcc Include="logplus.qrc">

View File

@ -90,7 +90,7 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
//ui->tableWidget_2->setFrameShape(QFrame::NoFrame); //设置无边框 //ui->tableWidget_2->setFrameShape(QFrame::NoFrame); //设置无边框
//隐藏网格线 //隐藏网格线
ui->tableWidget_2->setShowGrid(false); ui->tableWidget_2->setShowGrid(false);
ui->tableWidget_2->setItemDelegate(new ItemBorderDelegate(ui->tableWidget_2)); //ui->tableWidget_2->setItemDelegate(new ItemBorderDelegate(ui->tableWidget_2));
ui->tableWidget_2->setStyleSheet("QTableView {border: 0px solid black;} QTableView::item {border: 0px solid black;} \ ui->tableWidget_2->setStyleSheet("QTableView {border: 0px solid black;} QTableView::item {border: 0px solid black;} \
QTableView::item:selected {color:#57595B; background:#E4E4E4;}"); QTableView::item:selected {color:#57595B; background:#E4E4E4;}");

View File

@ -10,13 +10,8 @@
//曲线名称(单个) //曲线名称(单个)
WellHeader::WellHeader(QWidget *parent, QString strSlfName, QString strWellName) : WellHeader::WellHeader(QWidget *parent, QString strSlfName, QString strWellName) :
QWidget(parent) FormBase(parent, strSlfName, strWellName)
{ {
m_strSlfName = strSlfName;
m_strWellName = strWellName;
m_Color = Qt::black;
} }
WellHeader::~WellHeader() WellHeader::~WellHeader()
@ -33,12 +28,11 @@ QJsonObject WellHeader::makeJson()
QJsonObject rootObj; QJsonObject rootObj;
return rootObj; return rootObj;
} }
void WellHeader::setBorderFlags(BorderFlags flags)
{ void WellHeader::paintEvent(QPaintEvent *event)
m_BorderFlags = flags;
}
void WellHeader::paintEvent(QPaintEvent* event)
{ {
FormBase::paintEvent(event);
QPainter painter(this); QPainter painter(this);
QRect rect = this->rect(); QRect rect = this->rect();
//背景透明 //背景透明
@ -49,32 +43,6 @@ void WellHeader::paintEvent(QPaintEvent* event)
painter.setFont(m_Font); painter.setFont(m_Font);
painter.setPen(m_Color); // fontColor QColor(220, 220, 220) painter.setPen(m_Color); // fontColor QColor(220, 220, 220)
painter.drawText(rect, Qt::AlignCenter, m_strWellName); 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) void WellHeader::mousePressEvent(QMouseEvent *event)

View File

@ -5,12 +5,12 @@
#include <QPainter> #include <QPainter>
#include <QPaintEvent> #include <QPaintEvent>
#include "common.h" #include "FormBase.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
class FormWell; class FormWell;
class WellHeader : public QWidget class WellHeader : public FormBase
{ {
Q_OBJECT Q_OBJECT
@ -21,7 +21,6 @@ public:
void initProperty(QJsonObject obj); void initProperty(QJsonObject obj);
QJsonObject makeJson(); QJsonObject makeJson();
void setBorderFlags(BorderFlags flags);
private: private:
protected: protected:
@ -32,14 +31,10 @@ protected:
public slots: public slots:
public: public:
QString m_strUuid; QString m_strUuid;
QString m_strSlfName;
QString m_strWellName;
QFont m_Font = QFont("微软雅黑", 14); //显示名称字体 QFont m_Font = QFont("微软雅黑", 14); //显示名称字体
QColor m_Color; //颜色 QColor m_Color; //颜色
bool m_press;//判断鼠标是否按下 bool m_press;//判断鼠标是否按下
BorderFlags m_BorderFlags;
FormWell* m_pFormWell = NULL;
}; };