QML类型说明-BorderImage

BorderImage

 

ImportStatement:   import QtQuick 2.2

Inherits:      Item

 

Properties

asynchronous: bool

border

border.left: int

border.right: int

border.top :int

border.bottom: int

cache : bool

horizontalTileMode: enumeration

mirror :bool

progress :real

smooth :bool

source : url

sourceSize :QSize

status :enumeration

verticalTileMode: enumeration


DetailedDescription

这个组件瓷片化每个图片,并在放大的时候创建边框。注意:它不是给放大的源图片家边框,而是将源图片分割后,按照配置的属性填充显示效果。它将图片按下面的方式分成9个单元。


当图片放大时,它按照下面的规则创建显示的边界。

单元1、3、7、9不放大

单元2和8根据horizontalTileMode的配置放大

单元4和6根据verticalTileMode的配置放大

单元5根据horizontalTileMode和verticalTileMode放大。

图片的单元在border属性组中定义。它描述了作为边界的源图片离边缘的距离。

使用例子:

下面的例子说明了不同的模式对图片显示的影响,引导线是为了说明每个单元受到的影响。

没有放大的图片用Image。引导线给出了定义边框后受影响的单元。

Image {

    source: "pics/borderframe.png"

}


下面是BorderImage显示的图片,给了它一个比原始图片大的尺寸,horizontalTileMode被设置成BorderImage.Stretch,这表示2和8这两个单元被水平拉伸。verticalTileMode被设置成BorderImage.Stretch,这表示4和6这两个单元被垂直拉伸。

BorderImage{

    width: 180; height: 180

    border { left: 30; top: 30; right: 30;bottom: 30 }

    horizontalTileMode: BorderImage.Stretch

    verticalTileMode: BorderImage.Stretch

    source: "pics/borderframe.png"

}

 

同样是一个较大的尺寸,设置了边框后,horizontalTileMode被设置成BorderImage.Repeat,这表示2和8两个单元将使用重复的方式填顶部和底部空间。同样的,verticalTileMode也被设置成了BorderImage.Repeat,这表示4和6两个单元使用重复的方时填左边和右边。

BorderImage{

    width: 180; height: 180

    border { left: 30; top: 30; right: 30;bottom: 30 }

    horizontalTileMode: BorderImage.Repeat

    verticalTileMode: BorderImage.Repeat

    source: "pics/borderframe.png"

}

 

在大多数情况下,2和8单元最终的尺寸,不是2和8单元原图宽度的整数倍;4和6单元的高度也有同样的情况,这时,我们使用BorderImage.Round来替代BorderImage.Repeat以达到重复的效果。

BorderImage的例子展示了怎样使用BorderImage。看相关的实例分析。

资源图片可能不会立即加载完成,这跟图片的保存位置相关,我们可以监控progress属性来知道当前的Loading过程。同时参阅Image和AnimatedImage的组件说明。


PropertyDocumentation

asynchronous: bool

在加载本地文件系统中的图片时,使用专门的线程异步加载。默认为假。这个值的意义在于保持快速响应的用户界面,比更快的加载图片更有意义。注意,只有加载本地图片时,这个属性才有效,加载网络资源时,处理过程总是异步的。

 

border group

border.left: int

border.right: int

border.top :int

border.bottom: int

分割图片为9个单元的4个边框位置。每个边框线是分割点到图片边缘的像素数。默认的边框线为0。

 

BorderImage{

    border.bottom: 10

    // ...

}

边框也能用.sci文件指定。

 

cache : bool

指定图片是否缓存,默认为真。当我们扩展小图片为巨大的图片时,设置它为假,已确保我们不缓存图片。

 

horizontalTileMode: enumeration

这个属性描述了边的中心单元的拓展方法。

BorderImage.Stretch- 拉伸到有效距离

BorderImage.Repeat- 重复图片,直到没有更多的空间。最后的图片可以裁减。

BorderImage.Round- 跟重复差不多,但会拉伸图片,以使最后的图片不裁减。

默认属性是拉伸。

 

mirror :bool

是否水平镜像图片。默认为假。

 

progress :real

图片加载的过程,从0.0到1.0。同时参阅status属性。

 

smooth :bool

当拉伸或过渡时,是否平滑处理。平滑处理提供更好的视觉效果,但会消费一些硬件资源。如果图片是自然大小的,这个属性没有视觉和性能上的影响。默认为真。

 

source : url

资源图片的URL。QT支持的所有图片格式和URL方法,BorderImage都支持。这个属性也能用.sci文件提供。这种文件是QML指定的,基于文档的用于指明边框的文档格式。内容为图片文件是什么,边框规则为什么。

下面是一个.sci文件的内容,边框都为10,图片为picture.png:

border.left:10

border.top:10

border.bottom:10

border.right:10

source:"picture.png"

URL可以使绝对路径,也可以是相对路金。同时参阅QQuickImageProvider。

 

sourceSize :QSize

加载的图片的实际宽和高,这个属性是只读的。同时参阅Image::sourceSize。

 

status :enumeration

图片加载的状态描述,它是下面的其中一个值:

BorderImage.Null- 没有设置图片

BorderImage.Ready- 图片加载完成

BorderImage.Loading- 图片正在被加载

BorderImage.Error- 加载图片出现错误。

同时看progress属性的文档

 

verticalTileMode: enumeration

4和6号单元处理方法的描述,值是下面的一种:

BorderImage.Stretch- 拉伸到目标尺寸

BorderImage.Repeat- 重复到没有多余空间,最后一张图片可能被裁减。

BorderImage.Round- 类似于重复,但使用拉伸来让最后的图片不会被裁减。

默认为拉伸。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值