|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include <QComboBox>
|
|
|
|
|
|
|
|
|
|
|
|
#include "ZxTableHeaderViewFilter.h"
|
|
|
|
|
|
#include "mGuiDataLoad_global.h"
|
|
|
|
|
|
|
|
|
|
|
|
class iUnitGroup;
|
|
|
|
|
|
class iUnitItem;
|
|
|
|
|
|
|
|
|
|
|
|
// 在原先下拉表头的基础上,继续增加单位行,并且支持下拉
|
|
|
|
|
|
// 该类比较特殊,即有ZxTableHeaderViewFilter的下拉内部
|
|
|
|
|
|
// 又有ZxTableHeaderViewUnit的单位处理部分
|
|
|
|
|
|
// 目前无好的方式,只能从ZxTableHeaderViewFilter派生,
|
|
|
|
|
|
// 而内部很多函数实现方式又来自ZxTableHeaderViewUnit
|
|
|
|
|
|
class M_GUI_DATA_LOAD_EXPORT tTableHeaderViewUnit : public ZxTableHeaderViewFilter
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
tTableHeaderViewUnit(const QStringList& listItems, \
|
|
|
|
|
|
QWidget* parent = 0);
|
|
|
|
|
|
~tTableHeaderViewUnit();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void setHeaderData(const QStringList& listTitles, \
|
|
|
|
|
|
const QStringList& listUnits);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 设置表头下拉列表取值(两个接口,分别对应多选和单选)
|
|
|
|
|
|
virtual void setColumnItems(const QString& sCurSel, \
|
|
|
|
|
|
const QStringList& listAlls);
|
|
|
|
|
|
|
|
|
|
|
|
// 设置Titles,该父类接口请勿启用 [Obsolete]
|
|
|
|
|
|
virtual void changeTitles(QStringList listTitles);
|
|
|
|
|
|
// 请启用该接口
|
|
|
|
|
|
void changeTitles(const QStringList& listTitles, const QStringList& listUnits);
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool isColCbxVisible() const;
|
|
|
|
|
|
virtual void hideColCbxs();
|
|
|
|
|
|
|
|
|
|
|
|
// 获取当前显示的列单位
|
|
|
|
|
|
QString getCurUnitOfCol(int col) const;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// 重绘,此处有待完善,目前是没有版本,直接把父类搬过来了。
|
|
|
|
|
|
virtual void paintSection(QPainter* painter, const QRect &rect, int logicalIndex) const;
|
|
|
|
|
|
|
|
|
|
|
|
// 处理鼠标单击消息
|
|
|
|
|
|
virtual void mousePressEvent(QMouseEvent *e);
|
|
|
|
|
|
virtual void mouseReleaseEvent(QMouseEvent *e);
|
|
|
|
|
|
virtual bool eventFilter(QObject *obj, QEvent *event);
|
|
|
|
|
|
|
|
|
|
|
|
// 重置表头combo控件大小
|
|
|
|
|
|
virtual void resizeItem(int index);
|
|
|
|
|
|
|
|
|
|
|
|
// 删除comboBox控件
|
|
|
|
|
|
virtual void removeCombo();
|
|
|
|
|
|
|
|
|
|
|
|
public Q_SLOTS:
|
|
|
|
|
|
|
|
|
|
|
|
// 选择改变时响应
|
|
|
|
|
|
virtual void slotSelChanged(const int, const QString);
|
|
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
|
|
|
|
|
|
|
void onUnitCbxActivated(int index);
|
|
|
|
|
|
void onUnitCbxLostFocus();
|
|
|
|
|
|
void onSectionClicked(int logicalIndex);
|
|
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
|
|
|
|
void sigCbxValueChanged(int column, \
|
|
|
|
|
|
const iUnitItem* pSrcUnitItem, \
|
|
|
|
|
|
const iUnitItem* pDestUnitItem);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
QComboBox* m_pCbxColUnit;
|
|
|
|
|
|
|
|
|
|
|
|
//QStringList m_listTitles;
|
|
|
|
|
|
QStringList m_listCurUnits;
|
|
|
|
|
|
QStringList m_listBaseUnits;
|
|
|
|
|
|
|
|
|
|
|
|
int m_nLastIndex;
|
|
|
|
|
|
|
|
|
|
|
|
QMap<QString, iUnitGroup*> m_mapUnitGroups;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool m_bUnableSP;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|