logplus/Workflow/WFWidget/include/PaiTableItemDelegate.h
2026-01-17 12:55:45 +08:00

68 lines
1.5 KiB
C++

/*
* @file PaiTableItemDelegate.h
* @brief 一些PAI系统中常见的节点绘制类
* @date 2012-10-16
*/
#ifndef PAI_FRAME_WIDGET_PAITABLEITEMDELEGATE_H
#define PAI_FRAME_WIDGET_PAITABLEITEMDELEGATE_H
#include <QStyledItemDelegate>
#include <QPen>
#include <QTableView>
#include "Turtle.h"
namespace pai
{
namespace gui
{
/**
* @class PaiTableItemDelegate
* @brief PAI 风格 item delegate 只画水平方向 grid line, 同时负责cell的颜色
*/
class PAI_WIDGET_EXPORT PaiTableItemDelegate: public QStyledItemDelegate
{
public:
/**
* @enum DATA_ROLE
* @brief 数据角色
*/
enum DATA_ROLE
{
HOVERING_ROLE = 1024 ///< 悬浮
};
public:
/**
* @brief 构造函数
* @param[in] pTableView 所属QTableView
*/
PaiTableItemDelegate(QTableView *pTableView);
/**
* @brief 是否显示表格线
* @param[in] horizontal 水平方向线
* @param[in] verticalLine 垂直方向线
*/
virtual void setShowGrid(bool horizontal, bool verticalLine);
protected:
/**
* @brief 重新实现重绘函数
* @param[in] pPainter 画笔
* @param[in] option 绘制选项
* @param[in] index 模型索引
*/
virtual void paint(QPainter *pPainter, const QStyleOptionViewItem & option, const QModelIndex & index) const;
private:
QPen m_GridPen; ///< 网格画笔
bool m_HorizontalLine; ///< 水平线
bool m_VerticallLine; ///< 垂直线
};
}
}
#endif ///< PAI_FRAME_WIDGET_PAITABLEITEMDELEGATE_H