![]() 导语在界面编程中经常会使用图片,前面章节中我们已经使用过图片类型,这一篇将具体来讲一下图片使用的相关内容,其中还会涉及到边界图片的知识。 下面我们开始。 图片在Qt Quick中的Image类型用来显示一张图片。要显示图片,只需要通过source属性指定图片的路径。例如: Window { 这里将图片放到了资源文件中,所以可以直接使用。效果如下图所示。 ![]() 但是一般情况下,我们还会指定图片的显示大小,比如,这里设置为整个窗口的大小: Image { 效果如下图所示。 ![]() 可以看到,设置Image的大小,图片的显示大小也会随之改变。默认情况下图片会被拉伸。如果要更改默认的显示效果,那么可以使用fillMode属性来设置填充模式,常用的有:
例如: Image { 效果如下图所示。 ![]() 其他选项的效果可以参照下图。 ![]() 有的读者可能会说,当图片平铺时,图片是在中间,然后向四周平铺,怎么能让其从左上角开始呢?其实只需设置对齐方式即可,例如: Image { 效果如下图所示。 ![]() 除了使用本地的图片,Image还可以直接指定网络图片,例如: Window { 这里设置了3个Image,都使用了相同的网络图片,在第一个当中指定了sourceSize,它用来设置内存中保存的图片的原始大小,对于较大的图片,建议指定该属性;在第二个当中设置了mirror属性,可以实现图片水平翻转的镜面效果;在第三个当中,指定的是图片的显示大小。可以看到,当指定sourceSize时图片是保持宽高比进行缩放的。代码运行效果如下。 ![]() 另外,对于初学者,建议以后在程序中尽可能使用PNG格式图片,因为Qt对PNG格式是原生支持的。 边界图片在Qt Quick中还有一个特殊的图片类型BorderImage,从名字来看,它是一个边框图片类型,顾名思义,该类型可以将图片设置为边框,当然,了解了该类型的特性后,也可以实现其他一些效果。 BorderImage类型通过border属性将一个图片分为9部分,如下图所示: ![]() 这里的border是一个属性组,分为border.left、border.right、border.top和border.bottom,即上图中的左、右、上、下四条线,它们指定了从该线到相应图片边界的偏移像素。当图片缩放时,图中的9部分,会进行不同的操作,具体来说:
这里的horizontalTileMode和verticalTileMode可取的值均为:BorderImage.Stretch、BorderImage.Repeat和BorderImage.Round。 下面通过一个例子来理解。 Window { 这里第一个显示的是原始图片,后面是边界图片的不同效果,如下图所示,大家自己体会下。 ![]() 使用边界图片可以实现的效果有很多,比如实现Item项目的阴影,来看一个例子: Window { 实现的效果如下图所示。 ![]() 结语在本篇中介绍了常用的Image和BorderImage类型,有的读者可能还需要显示动态图片,比如GIF图片,那么可以使用AnimatedImage类型,该类型也很简单,这里就不再具体讲解。 第11篇 Qt Quick入门教程之图形动画(一)颜色和渐变 ![]() ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:yafeilinux和他的朋友们,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |