当前位置:   article > 正文

QML Image Element 属性详情说明及样例_qml image anchors.verticalcenter

qml image anchors.verticalcenter

QML Image Element

Image元素继承Item,支持PNG,JPG,GIF,BMP等静态图片格式,也支持矢量图片格式SVG,不支持动画(动画可以用它的派生子元素AnimatedImage)。

Image定义的主要属性成员包括以下(继承Item的基本属性参考后面第二个表格

  1. 1)asynchronous : bool//是否使用额外的线程加载图片(如果是本地大图片,建议设置成true)。如果是网络加载图片参数无法修改默认是true。
  2. 2)autoTransform : bool //whether the image should automatically apply image transformation metadata such as EXIF orientation.默认为false.
  3. 3)cache : bool //是否缓存加载的图片,默认为true。如果大图片建议设置为false,节约内存。
  4. 4)fillMode : enumeration //如果item显示区域与image的size 不匹配是,设置如何显示image
  5.  - Image.Stretch -image 缩放到item 显示区域内(默认方式)
  6.  - Image.PreserveAspectFit - 根据item显示区域缩放,不裁剪图片
  7.  - Image.PreserveAspectCrop - 根据item显示区域同比例缩放,需要时适当裁减图片
  8.  - Image.Tile - 根据item显示区域,在水平,垂直方向重复显示图片
  9.  - Image.TileVertically - 水平方向缩放图片,垂直方向重复显示图片
  10.  - Image.TileHorizontally - 垂直方向缩放图片,水平方向重复显示图片
  11. - Image.Pad – 不处理图片 the image is not transformed
  12. 5)mirror : bool // 水平镜像特效,默认为false
  13. 6)paintedHeight : real //只读属性,保存着图片被绘制的高度
  14. 7)paintedWidth : real //只读属性,保存着图片被绘制的宽度
  15. 8)progress : real // 只读属性,图片加载进度,(0.0-1.0)
  16. 9)smooth : bool //平滑处理。如果图片经过缩放,那么打开参数会导致图片加载速度变慢。
  17. 10)source : url // 图片地址,注意qml对路径的处理,有时需要使用file://, qrc。
  18. 11)sourceSize : QSize // 指定图片在内存中保存的图片宽,高,而不管图片的实际宽,高,这样可以使图片使用内存减少。在设置了sourceSize 之后会引起图片的重新加载。
  19. 12)status : enumeration // 只读属性,获取图片的状态
  20.  - Image.Null - 没有图片
  21.  - Image.Ready - 图片完成加载
  22.  - Image.Loading - 正在加载图片
  23.  - Image.Error - 加载图片时,发生错误
  24. 13)horizontalAlignment : enumeration
  25. - Image.AlignLeft
  26. - Image.AlignRight
  27. - Image.AlignHCenter(default)
  28. 14)verticalAlignment : enumeration
  29. - Image.AlignTop
  30.  - Image.AlignBottom
  31.  - Image.AlignVCenter.(default)
  32. 15)mipmap : bool (default with false,QT5.3引入)
  33. 图像变换中优化渲染效果,通常比smooth效果更好些,但是会有更多资源消耗

继承于Item的属性:

  1. activeFocus : bool
  2. activeFocusOnTab : bool
  3. anchors.alignWhenCentered : bool
  4. anchors.baseline : AnchorLine
  5. anchors.baselineOffset : real
  6. anchors.bottom : AnchorLine
  7. anchors.bottomMargin : real
  8. anchors.centerIn : Item
  9. anchors.fill : Item
  10. anchors.horizontalCenter : AnchorLine
  11. anchors.horizontalCenterOffset : real
  12. anchors.left : AnchorLine
  13. anchors.leftMargin : real
  14. anchors.margins : real
  15. anchors.right : AnchorLine
  16. anchors.rightMargin : real
  17. anchors.top : AnchorLine
  18. anchors.topMargin : real
  19. anchors.verticalCenter : AnchorLine
  20. anchors.verticalCenterOffset : real
  21. antialiasing : bool
  22. baselineOffset : int
  23. children : list<Item>
  24. childrenRect.height : real
  25. childrenRect.width : real
  26. childrenRect.x : real
  27. childrenRect.y : real
  28. clip : bool
  29. data : list<Object>
  30. enabled : bool
  31. focus : bool
  32. height : real
  33. implicitHeight : real
  34. implicitWidth : real
  35. layer.effect : Component
  36. layer.enabled : bool
  37. layer.format : enumeration
  38. layer.mipmap : bool
  39. layer.samplerName : string
  40. layer.smooth : bool
  41. layer.sourceRect : rect
  42. layer.textureMirroring : enumeration
  43. layer.textureSize : size
  44. layer.wrapMode : enumeration
  45. opacity : real
  46. parent : Item
  47. resources : list<Object>
  48. rotation : real
  49. scale : real
  50. smooth : bool
  51. state : string
  52. states : list<State>
  53. transform : list<Transform>
  54. transformOrigin : enumeration
  55. transitions : list<Transition>
  56. visible : bool
  57. visibleChildren : list<Item>
  58. width : real
  59. x : real
  60. y : real
  61. z : real
  62. childAt(real x, real y)
  63. bool contains(point point)
  64. forceActiveFocus(Qt::FocusReason reason)
  65. forceActiveFocus()
  66. bool grabToImage(callback, targetSize)
  67. object mapFromGlobal(real x, real y)
  68. object mapFromItem(Item item, real x, real y, real width, real height)
  69. object mapFromItem(Item item, real x, real y)
  70. object mapToGlobal(real x, real y)
  71. object mapToItem(Item item, real x, real y, real width, real height)
  72. object mapToItem(Item item, real x, real y)
  73. nextItemInFocusChain(bool forward)

实用样例(关键帧预览图)

编辑样例如下(结合常见时间线)

  1. function calcIconWidth(h, parent_h) {
  2. //console.log("===== image_h=", h, " parent_h=", parent_h)
  3. return h * 4 / 3;
  4. }
  5. function calcFramePoint(index, startPoint, endPoint, clipWidth) {
  6. var res = (60 * index) * (endPoint - startPoint) / clipWidth + startPoint;
  7. var resInt = Math.floor(res + 0.5);
  8. //console.log("===== [in,out]:[", startPoint, ",", endPoint, "], clipWidth=", clipWidth, "no.", index, "framepoint:", resInt)
  9. return resInt;
  10. }
  11. Image {
  12. id: outThumbnail
  13. visible: settings.timelineShowThumbnails
  14. anchors.right: parent.right
  15. anchors.top: parent.top
  16. anchors.topMargin: parent.border.width + 1
  17. anchors.rightMargin: parent.border.width + 1
  18. anchors.bottom: parent.bottom
  19. anchors.bottomMargin: parent.height / 3 + 1
  20. property int clipWidth: clipRoot.width - clipRoot.border.width * 2
  21. width: clipWidth%60 //calcIconWidth(height, parent.height) //height * 4.0/3.0
  22. fillMode: Image.Pad //Image.PreserveAspectFit
  23. horizontalAlignment: Image.AlignLeft
  24. source: imagePath(outPoint)
  25. }
  26. // image repeater
  27. Repeater {
  28. id: imageRepeater
  29. property int clipWidth: clipRoot.width - clipRoot.border.width * 2
  30. model: clipWidth / 60 - 1
  31. Image {
  32. visible: settings.timelineShowThumbnails
  33. cache: false
  34. anchors.left: parent.left
  35. anchors.top: parent.top
  36. anchors.topMargin: parent.border.width + 1
  37. anchors.leftMargin: parent.border.width + 1 + (index + 1) * 60
  38. anchors.bottom: parent.bottom
  39. anchors.bottomMargin: parent.height / 3 + 1
  40. width: calcIconWidth(height, parent.height) //height * 4.0/3.0
  41. fillMode: Image.PreserveAspectFit
  42. source: imagePath(calcFramePoint(index + 1, inPoint, outPoint, imageRepeater.clipWidth))
  43. }
  44. }
  45. Image {
  46. id: inThumbnail
  47. visible: settings.timelineShowThumbnails
  48. anchors.left: parent.left
  49. anchors.top: parent.top
  50. anchors.topMargin: parent.border.width + 1
  51. anchors.leftMargin: parent.border.width + 1
  52. anchors.bottom: parent.bottom
  53. anchors.bottomMargin: parent.height / 3 + 1
  54. width: calcIconWidth(height, parent.height) //height * 4.0/3.0
  55. fillMode: Image.PreserveAspectFit
  56. source: imagePath(inPoint)
  57. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/117439
推荐阅读
相关标签
  

闽ICP备14008679号