107 lines
2.4 KiB
C
107 lines
2.4 KiB
C
|
|
/**
|
|||
|
|
* @file PaiTreeWidget.h
|
|||
|
|
* @brief P.A.I系统定制发布的树控件
|
|||
|
|
* @date 2012-10-18
|
|||
|
|
*/
|
|||
|
|
#ifndef PAI_FRAME_WIDGET_PAITREEWIDGET_H
|
|||
|
|
#define PAI_FRAME_WIDGET_PAITREEWIDGET_H
|
|||
|
|
|
|||
|
|
#include <QTreeWidget>
|
|||
|
|
#include "Turtle.h"
|
|||
|
|
|
|||
|
|
class QLabel;
|
|||
|
|
|
|||
|
|
namespace pai
|
|||
|
|
{
|
|||
|
|
namespace gui
|
|||
|
|
{
|
|||
|
|
/**
|
|||
|
|
* @class PaiTreeWidget
|
|||
|
|
* @brief PaiTreeWidget是P.A.I系统定制发布的树控件
|
|||
|
|
*/
|
|||
|
|
class PAI_WIDGET_EXPORT PaiTreeWidget : public QTreeWidget
|
|||
|
|
{
|
|||
|
|
Q_OBJECT
|
|||
|
|
public:
|
|||
|
|
/**
|
|||
|
|
* @brief 构造函数
|
|||
|
|
* @param[in] pParent 父窗口句柄
|
|||
|
|
*/
|
|||
|
|
PaiTreeWidget(QWidget *pParent = NULL);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 析构函数
|
|||
|
|
*/
|
|||
|
|
virtual ~PaiTreeWidget();
|
|||
|
|
|
|||
|
|
public slots:
|
|||
|
|
/**
|
|||
|
|
* @brief 按节点名搜索树,只显示搜索到的节点
|
|||
|
|
* @param[in] keyword 搜索的关键字
|
|||
|
|
* @param[in] column 要搜索的列
|
|||
|
|
*/
|
|||
|
|
void Filter(const QString & keyword, int column = 0);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 按节点名搜索树,只显示搜索到的节点
|
|||
|
|
* @param[in] keyword 搜索的关键字
|
|||
|
|
* @param[in] columns 要搜索的列
|
|||
|
|
*/
|
|||
|
|
void Filter(const QString & keyword, QList<int> columns);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
/**
|
|||
|
|
* @brief 指定节点是否属于查找结果的子代,本函数仅供Filter函数调用。
|
|||
|
|
* @param[in] pItem 指定节点
|
|||
|
|
* @return 返回数否属于查找结果的直系子代
|
|||
|
|
*/
|
|||
|
|
bool IsGenerationOfFoundItem(QTreeWidgetItem *pItem);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
bool m_InSearching; ///< 表示是否正在进行搜索
|
|||
|
|
QLabel *m_pTipLabel; ///< 搜索结果为空的提示文本信息框
|
|||
|
|
|
|||
|
|
signals:
|
|||
|
|
/**
|
|||
|
|
* @brief 搜索完成后触发此消息
|
|||
|
|
* @param[in] pRootItem 根节点
|
|||
|
|
*/
|
|||
|
|
void SearchFinished(QTreeWidgetItem *pRootItem);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @class PaiTreeWidgetItem
|
|||
|
|
* @brief 数据树item类,支持排序
|
|||
|
|
*/
|
|||
|
|
class PAI_WIDGET_EXPORT PaiTreeWidgetItem : public QTreeWidgetItem
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
/**
|
|||
|
|
* @brief 构造函数
|
|||
|
|
*/
|
|||
|
|
PaiTreeWidgetItem();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 构造函数
|
|||
|
|
* @param[in] pParent 父窗口句柄
|
|||
|
|
*/
|
|||
|
|
PaiTreeWidgetItem(QTreeWidgetItem *pParent);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 析构函数
|
|||
|
|
*/
|
|||
|
|
virtual ~PaiTreeWidgetItem();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 重写QTreeWidgetItem的比较函数
|
|||
|
|
* @param[in] otherItem 其他比较对象
|
|||
|
|
* @return 返回与其他item对象的比较结果
|
|||
|
|
*/
|
|||
|
|
virtual bool operator < (const QTreeWidgetItem & otherItem) const;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif ///< PAI_FRAME_WIDGET_PAITREEWIDGET_H
|