DtkCore
DTK Core module
载入中...
搜索中...
未找到
Dtk::Core::DAbstractUnitFormatter类 参考abstract

抽象格式化工具基类 更多...

#include <include/util/dabstractunitformatter.h>

类 Dtk::Core::DAbstractUnitFormatter 继承关系图:
Dtk::Core::DDiskSizeFormatter Dtk::Core::DTimeUnitFormatter

Public 成员函数

 DAbstractUnitFormatter ()
 空参构造函数
 
qreal formatAs (qreal value, int currentUnit, const int targetUnit) const
 格式化数值到指定单位
 
QPair< qreal, int > format (const qreal value, const int unit) const
 格式化数值到合适的单位
 
QList< QPair< qreal, int > > formatAsUnitList (const qreal value, int unit) const
 包括完整转换数据版本的format()
 

Protected 成员函数

virtual int unitMax () const =0
 获取最大的单位id
 
virtual int unitMin () const =0
 获取最小的单位id
 
virtual uint unitConvertRate (int unitId) const =0
 获取当前单位到下一高级单位的进率
 
virtual qreal unitValueMax (int unitId) const
 获取当前单位的最大值
 
virtual qreal unitValueMin (int unitId) const
 获取当前单位的最小值
 
virtual QString unitStr (int unitId) const =0
 获取当前单位的字符串表示
 

详细描述

抽象格式化工具基类

DAbstractUnitFormatter提供统一的单位格式化接口. 在DAbstractUnitFormatter的设计理念中, 不同大小的单位被编号成不同级别的单位id.
id从小到大, 单位从低级到高级. 各相邻单位之间的进率可以是不均匀的, 实现者只需实现unitConvertRate, 返回当前单位到下一高级单位(从id为x的单位到id为x+1的单位)的进率是正确的.
事实上, 实现者如果保证unitConvertRate对于任一id为x的单位, 其到id为x+1的单位的换算比率(允许小于1)是正确的, 不需满足id递增, 单位级别递增的约束(即unitConvertRate总是大于1的约束)
注意, 实现者此时需重写其他接口以同时保证正确性.

构造及析构函数说明

◆ DAbstractUnitFormatter()

DAbstractUnitFormatter::DAbstractUnitFormatter ( )

空参构造函数

注解
注意, 该类为抽象类, 不可直接实例化, 该构造函数仅供实现子类使用.

成员函数说明

◆ format()

QPair< qreal, int > DAbstractUnitFormatter::format ( const qreal  value,
const int  unit 
) const

格式化数值到合适的单位

参数
[in]value当前单位下表示的数值
[in]unit当前单位
返回
格式化后的合适的数值和单位

合适是指: 如果单位大于unitMin()或者小于unitMax(), 会尽量保证值被转换到接近最小值的合适单位上.

◆ formatAs()

qreal DAbstractUnitFormatter::formatAs ( qreal  value,
int  currentUnit,
const int  targetUnit 
) const

格式化数值到指定单位

参数
[in]value当前单位下表示的数值
[in]currentUnit当前单位id
[in]targetUnit目标单位id
返回
格式化后以目标单位表示的数值

◆ formatAsUnitList()

QList< QPair< qreal, int > > DAbstractUnitFormatter::formatAsUnitList ( const qreal  value,
int  unit 
) const

包括完整转换数据版本的format()

参数
[in]value当前单位下表示的数值
[in]unit当前单位
返回
格式化产生的所有的数值和单位

◆ unitConvertRate()

pure virtual uint DAbstractUnitFormatter::unitConvertRate ( int  unitId) const
protectedpure virtual

获取当前单位到下一高级单位的进率

参数
[in]unitId当前单位id
返回
进率, 正常情况下, 大于1
注解
下一高级单位指id为unitId + 1的单位.

Dtk::Core::DDiskSizeFormatter , 以及 Dtk::Core::DTimeUnitFormatter 内被实现.

◆ unitMax()

pure virtual int DAbstractUnitFormatter::unitMax ( ) const
protectedpure virtual

获取最大的单位id

返回
最大的单位id

Dtk::Core::DDiskSizeFormatter , 以及 Dtk::Core::DTimeUnitFormatter 内被实现.

◆ unitMin()

pure virtual int DAbstractUnitFormatter::unitMin ( ) const
protectedpure virtual

获取最小的单位id

返回
最小的单位id

Dtk::Core::DDiskSizeFormatter , 以及 Dtk::Core::DTimeUnitFormatter 内被实现.

◆ unitStr()

QString DAbstractUnitFormatter::unitStr ( int  unitId) const
protectedpure virtual

获取当前单位的字符串表示

参数
[in]unitId当前单位id
返回
单位字符串表示

Dtk::Core::DDiskSizeFormatter , 以及 Dtk::Core::DTimeUnitFormatter 内被实现.

◆ unitValueMax()

qreal DAbstractUnitFormatter::unitValueMax ( int  unitId) const
inlineprotectedvirtual

获取当前单位的最大值

参数
[in]unitId当前单位id
返回
单位最大值

◆ unitValueMin()

qreal DAbstractUnitFormatter::unitValueMin ( int  unitId) const
inlineprotectedvirtual

获取当前单位的最小值

参数
[in]unitId当前单位id
返回
单位最小值

该类的文档由以下文件生成: