C

QSafeLayout 类

class SafeRenderer::QSafeLayout

QSafeLayout 类提供访问 Qt 安全渲染器布局数据的抽象类。 更多...

头文件 #include <QSafeLayout>
QtSafeRenderer 1.0
继承自

SafeRenderer::QSafeLayoutFileReaderSafeRenderer::QSafeLayoutResourceReader

此类在 QtSafeRenderer 1.0 中引入。

公共类型

枚举LayoutException { UnknownBitmapId, UnknownItem, ItemOutOfBounds, SizeErrorWidth, SizeErrorHeight, …, InvalidLayoutType }
枚举LayoutParserState { INVALID, OK }

公共函数

QSafeLayout(SafeRenderer::QSafeBitmapReader *const bitmapReader)
virtual~QSafeLayout()
voidadvanceAnimation(const SafeRenderer::quint32 stateIndexArg, const SafeRenderer::quint32 transitionIndexArg)
const SafeRenderer::QSafeBitmap *bitmapForItem(const SafeRenderer::quint32 idArg) const
SafeRenderer::quint32count() const
virtual SafeRenderer::QSafeFontCache *fontCache() const = 0
const SafeRenderer::LayoutData &getLayoutItem(const SafeRenderer::quint32 idArg) const
const SafeRenderer::QSafeStateTransition &getStateTransition(const SafeRenderer::quint32 indexArg)
SafeRenderer::LayoutData &item(const SafeRenderer::quint32 idx)
boolitemIndex(const SafeRenderer::quint32 idArg, SafeRenderer::quint32 &indexArg) const
SafeRenderer::quint32layoutId() const
SafeRenderer::QSafeLayout::LayoutParserStateparserState() const
SafeRenderer::QSafePointposition() const
virtual const SafeRenderer::QSafeByteArrayreadDataFromFile(const SafeRenderer::qchar *const filenameArg) = 0
voidrestartAnimation(const SafeRenderer::quint32 stateIndexArg, const SafeRenderer::quint32 transitionIndexArg)
voidsetAlphaForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::quint8 alphaArg)
voidsetBitmapForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::quint32 bitmapIdArg)
voidsetColorForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::ARGB colorArg)
voidsetLayoutId(const SafeRenderer::quint32 &layoutIdArg)
voidsetPositionForItem(const SafeRenderer::qchar *const name, const SafeRenderer::quint32 x, const SafeRenderer::quint32 y)
voidsetPositionForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::quint32 x, const SafeRenderer::quint32 y)
voidsetTextForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::qchar *const textArg)
SafeRenderer::QSafeSizesize() const
SafeRenderer::quint32stateTransitionsCount() const

静态公共成员

SafeRenderer::quint32validateLayout(const SafeRenderer::QSafeByteArray &layoutDataArg)

详细说明

QSafeLayout类提供了一个访问Qt安全渲染器布局数据的抽象类。

成员类型文档

枚举 QSafeLayout::LayoutException

此枚举描述了QSafeLayout类中的异常值。

常量描述
SafeRenderer::QSafeLayout::UnknownBitmapId0从布局中找不到位图ID。
SafeRenderer::QSafeLayout::UnknownItem1未找到该项目。
SafeRenderer::QSafeLayout::ItemOutOfBounds2项目的新位置超出范围。
SafeRenderer::QSafeLayout::SizeErrorWidth4布局尺寸的宽度过长。
SafeRenderer::QSafeLayout::SizeErrorHeight5布局尺寸的高度过长。
SafeRenderer::QSafeLayout::DataSizeMismatch3布局文件的大小不是布局数据大小的倍数,或者布局数据大小过小。
SafeRenderer::QSafeLayout::InvalidLayoutVersion6不支持布局版本。
SafeRenderer::QSafeLayout::CheckSumFailed7布局文件校验和失败。
SafeRenderer::QSafeLayout::TooLongFilename8位图的文件名过长,无法放入临时缓冲区。
SafeRenderer::QSafeLayout::InvalidLayoutType9布局类型无效。

枚举 QSafeLayout::LayoutParserState

此枚举描述了QSafeLayout类中的状态值。

常量描述
SafeRenderer::QSafeLayout::INVALID0布局数据无效。
SafeRenderer::QSafeLayout::OK1已读取并验证了布局数据。

成员函数文档

QSafeLayout::QSafeLayout(SafeRenderer::QSafeBitmapReader *const bitmapReader)

使用用作访问位图数据的bitmapReader实例来构造安全布局对象。

[虚拟] QSafeLayout::~QSafeLayout()

销毁安全布局对象。

void QSafeLayout::advanceAnimation(const SafeRenderer::quint32 stateIndexArg, const SafeRenderer::quint32 transitionIndexArg)

transitionIndexArg处推进stateIndexArg

const SafeRenderer::QSafeBitmap *QSafeLayout::bitmapForItem(const SafeRenderer::quint32 idArg) const

返回由idArg标识的布局项的位图对象。如果找不到位图,则返回NULL。

另请参阅setBitmapForItem()。

SafeRenderer::quint32 QSafeLayout::count() const

返回布局项的数量。

[纯虚] SafeRenderer::QSafeFontCache *QSafeLayout::fontCache() const

返回字体缓存指针。此函数在继承类中实现。

const SafeRenderer::LayoutData &QSafeLayout::getLayoutItem(const SafeRenderer::quint32 idArg) const

返回由 idArg 标识的 SafeRenderer::LayoutData 项。

id值是在QML UI Form文件中安全项的objectName的哈希值。如果找不到项,则会抛出异常

常量描述
SafeRenderer::QSafeLayout::LayoutException::UnknownItem未找到该项目。

例如

SafePicture {
    objectName: "iconCoolant"
    width: 64
    height: 64
    color: "#e41e25"
    source: "qrc:/iso-icons/iso_grs_7000_4_2426.dat"
}

ID值可以按以下方式计算

quint32 id = qt_hash("iconCoolant", safe_strlen("iconCoolant");

const SafeRenderer::QSafeStateTransition &QSafeLayout::getStateTransition(const SafeRenderer::quint32 indexArg)

返回索引为 indexArg 的 QSafeStateTransition。

如果 indexArg 大于 SafeRenderer::QSafeStates::StatesException::IndexOutOfBounds 状态的数量,则会抛出。

SafeRenderer::LayoutData &QSafeLayout::item(const SafeRenderer::quint32 idx)

返回位于 idxLayoutData 的引用。

bool QSafeLayout::itemIndex(const SafeRenderer::quint32 idArg, SafeRenderer::quint32 &indexArg) const

如果找到 idArg,则返回 true;否则返回 false。布局项的索引由 idArg 确定。索引设置为 indexArg

SafeRenderer::quint32 QSafeLayout::layoutId() const

布局id的获取器函数。

LayoutId是每个布局实例的唯一id。默认情况下,layoutId是布局文件名的哈希值。

另请参阅setLayoutId

SafeRenderer::QSafeLayout::LayoutParserState QSafeLayout::parserState() const

返回解析器的状态。

SafeRenderer::QSafePoint QSafeLayout::position() const

返回布局的位置。

[纯虚函数] const SafeRenderer::QSafeByteArray QSafeLayout::readDataFromFile(const SafeRenderer::qchar *const filenameArg)

读取 filenameArg 指定的文件。返回读取数据的引用。此函数在继承类中实现。

void QSafeLayout::restartAnimation(const SafeRenderer::quint32 stateIndexArg, const SafeRenderer::quint32 transitionIndexArg)

transitionIndexArg 处重新启动 stateIndexArg

void QSafeLayout::setAlphaForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::quint8 alphaArg)

alphaArg 阿尔法值设置为由 idArg 标识的对象。

在发生故障时,将抛出以下异常

常量描述
SafeRenderer::QSafeLayout::LayoutException::UnknownItem项目 idArg 不存在。

void QSafeLayout::setBitmapForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::quint32 bitmapIdArg)

bitmapIdArg 值设置为由 idArg 标识的对象。

在发生故障时,将抛出以下异常之一

常量描述
SafeRenderer::QSafeLayout::LayoutException::UnknownItem项目 idArg 不存在。
SafeRenderer::QSafeLayout::LayoutException::UnknownBitmapId位图 bitmapIdArg 不存在。
SafeRenderer::QSafeLayout::LayoutException::ItemOutOfBounds位图超出窗口边界

另请参阅bitmapForItem

void QSafeLayout::setColorForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::ARGB colorArg)

colorArg 颜色设置为由 idArg 标识的对象。

此方法允许更改可变对象,如图片的颜色。

在发生故障时,将抛出以下异常之一

常量描述
SafeRenderer::QSafeLayout::LayoutException::UnknownItem项目 idArg 不存在。

void QSafeLayout::setLayoutId(const SafeRenderer::quint32 &layoutIdArg)

将布局标识符设置为 layoutIdArg 的值。

另请参阅layoutId

void QSafeLayout::setPositionForItem(const SafeRenderer::qchar *const name, const SafeRenderer::quint32 x, const SafeRenderer::quint32 y)

xy 位置设置为名为 name 的对象。

在发生故障时,将抛出以下异常之一

常量描述
SafeRenderer::QSafeLayout::LayoutException::ItemOutOfBounds项目的新的位置超出窗口边界。
SafeRenderer::QSafeLayout::LayoutException::UnknownItem项目 name 不存在。
SafeRenderer::QSafeLayout::LayoutException::UnknownBitmapId与布局项相关联的位图未找到。

void QSafeLayout::setPositionForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::quint32 x, const SafeRenderer::quint32 y)

xy 位置设置为由 idArg 标识的对象。

在发生故障时,将抛出以下异常之一

常量描述
SafeRenderer::QSafeBitmapFileReader::BitmapFileReaderException::IndexOutOfBounds位图索引超出在 SafeRenderer::Constraints::MAX_AMOUNT_OF_BITMAPS 中定义的值。
SafeRenderer::QSafeLayout::LayoutException::ItemOutOfBounds项目的新的位置超出窗口边界。
SafeRenderer::QSafeLayout::LayoutException::UnknownItem项目 idArg 不存在。
SafeRenderer::QSafeLayout::LayoutException::UnknownBitmapId与布局项相关联的位图未找到。

void QSafeLayout::setTextForItem(const SafeRenderer::quint32 idArg, const SafeRenderer::qchar *const textArg)

textArg 文本设置为由 idArg 标识的对象。

在发生故障时,将抛出以下异常

常量描述
SafeRenderer::QSafeLayout::LayoutException::UnknownItem项目 idArg 不存在。

SafeRenderer::QSafeSize QSafeLayout::size() const

返回布局的大小。

SafeRenderer::quint32 QSafeLayout::stateTransitionsCount() const

返回状态的数量。

[静态] SafeRenderer::quint32 QSafeLayout::validateLayout(const SafeRenderer::QSafeByteArray &layoutDataArg)

QSafeLayout::validateLayout 验证 layoutDataArg 中的数据。 获取布局文件中项的数量。

在特定 Qt 许可证下可用。
了解更多信息。