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.
nmWTAI-Platform/Include/mGui/mGuiDataLoad/tTableHeaderViewUnit.h

98 lines
2.5 KiB
C

#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;
};