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

107 lines
2.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @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