You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Include/iBase/iPlugin/ZxTableViewEx.h

55 lines
1.5 KiB
C

#pragma once
#include "Defines.h"
#include "ZxTableView.h"
class ZxTableHeaderView;
// 本类主要实现表头可以筛选的表格
class I_PLUGIN_EXPORT ZxTableViewEx : public ZxTableView
{
Q_OBJECT
public:
explicit ZxTableViewEx(bool bMultiSel = true, \
QWidget* parent = 0, \
QAbstractItemModel* model = NULL);
virtual ~ZxTableViewEx();
//private:
void initHeaderView(QStringList list, \
ZxTableModel* pModel = NULL);
/// @brief 取得某列不重复的数据,并且转换为QString
/// @param nCol 列索引
/// @param bOnlyCurShow 是否仅仅获取表格当前显示内容(考虑筛选后)
QStringList getColDistinct(int nCol, bool bOnlyCurShow = true);
VVecVariant getCurFilterData(int nIndex);
public slots:
// 表头的响应
void slotOnGetColumnItems(int index);
void slotSelChanged(const int index, const QStringList list);
void slotRawDataChanged();
signals:
void sigGetFilterData(VVecVariant& vvec, \
const int index, \
const QStringList list);
protected:
bool m_bMultiSel; //true:多选CheckBox
VVecVariant m_vvecDataAll; //这是当前表格的所有数据,只有当最顶层的筛选条件改变时才会更新
QMap<int, QStringList> m_mapAllFields;
QMap<int, QStringList> m_mapFilterFields;
ZxTableHeaderView* m_pHeaderView; //false:单选Radio
bool m_bEnableSP;
};