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++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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