68 lines
1.5 KiB
C++
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
|