/* * @file PaiTableItemDelegate.h * @brief 一些PAI系统中常见的节点绘制类 * @date 2012-10-16 */ #ifndef PAI_FRAME_WIDGET_PAITABLEITEMDELEGATE_H #define PAI_FRAME_WIDGET_PAITABLEITEMDELEGATE_H #include #include #include #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