qml PathView实现滚动选择项

路径视图PathView

简要:将数据模型提供的数据存放在路径上显示出来
所以PathView需要几个关键要素才能输出,如下:

PathView {
            anchors.fill: parent
            delegate: cardDelegate //展示数据使用的delegate
            model: datamodel  //数据模型
            path: path_view   //路径配置
            pathItemCount: 5  //显示的个数
        }

接下来先说说数据模型model,创建5个数据

ListModel {
        id:datamodel;
        ListElement {name:"德里克罗斯";pic: "image/rose.png";}
        ListElement {name:"卡梅罗安东尼";pic: "image/an.png";}
        ListElement {name:"詹姆斯哈登";pic: "image/harden.png";}
        ListElement {name:"科比布莱恩特";pic: "image/kobe.png";}
        ListElement {name:"凯里欧文";pic: "image/living.png";}

    }

数据模型model写好后,编写展示数据模型的cardDelegate

Component{
     id:cardDelegate
     Column{
         width: 64; height: 64
         scale: PathView.picScale; //尺寸大小
         opacity: PathView.picOpacity;//透明度
         z:PathView.picZ;
         Image {
             anchors.horizontalCenter: nameText.horizontalCenter
             width: 64;
             height: 64;
             //fillMode :Image.TileVertically
             source: pic
          }
          Text {
             id:nameText
             font.pointSize: 13
             color: "red"
             text: qsTr(name)
          }
     }
}

最后就是显示的路径

Path{
        id:path_view
        //贝慈尔曲线
        startX:430;startY:300
       // PathAttribute {name:"picZ";value: 0;}
       // PathAttribute {name:"picAngle";value: 70;}
        PathAttribute {name:"picScale";value: 1.00;}
        PathAttribute {name:"picOpacity";value: 1.00;}
        PathQuad{x:430;y:240;controlX:600;controlY:270;}
       // PathAttribute {name:"picZ";value: 100;}
       // PathAttribute { name:"picAngle";value: -70;}
        PathAttribute {name:"picScale";value: 0.50;}
        PathAttribute {name:"picOpacity";value: 0.50;}
        PathQuad{x:430; y:300; controlX:260;controlY:270}
        
    }

这里的难点大概是画曲线,我也是琢磨了一会儿,startX和startY是起始点,然后PathQuad中的x和y是终止点,controlX和controlY是拉伸点(可以这么认为:controlX和controlY是中间点,用来变成一条曲线的。)

效果如下图:
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: QML是一种用于构建用户界面的语言,而QML PathViewQML中一个重要的视图组件。PathView可以使用户界面中的元素在一条路径上移动,它与ListView和GridView相似,但不同之处在于它不仅可以在水平和垂直方向上滚动,还可以在任意的路径上滚动。 在PathView中,路径可以是直线、弧线、三次或二次贝塞尔曲线、椭圆或自定义路径等,用户可以定义这些路径的起始点、终点、方向和曲率等参数,为用户界面中元素的移动提供了更多的自由度和灵活性。 PathView中的元素通常是由一个delegate定义的,可以将其理解为一个模板,用户可以根据自己的需要对delegate进行定制,包括元素的大小、颜色、位置和动画等属性。用户还可以选择路径上元素的排列方向,如从左到右、从右到左、从上到下、从下到上等。 PathView极大地丰富了QML中的视图组件,使用户界面变得更加生动和富有动感。它可以应用于用户界面中的各种场景,如图形化的时间轴、旋转菜单、流式列表等。在实际开发中,QML PathView可以帮助开发者快速构建具有创新和视觉效果的用户界面,提高用户体验和界面交互的质量。 ### 回答2: QML PathView是一个QML组件,它提供了一个沿着指定路径展示项目的视图。该组件可以实现拖动和滑动视图项目。QML PathView非常适合用于创建用户界面中的滑动选择器、菜单列表和时间轴等。 QML PathView可以用来展示不同类型的视图项目,如图片、文本、按钮等。它的工作方式是在组件内部创建一个模型视图,该视图会根据用户交互来调整相应的项目位置和大小。用户可以用鼠标或者触摸屏幕来滑动视图,这样就可以轻松地选择感兴趣的项目。 QML PathView组件中有三种不同类型的路径可供选择,包括直线、圆和贝塞尔曲线。在运用QML PathView时,我们需要指定可视化的项目数量,以及每个项目在路径上的位置和大小。我们还可以通过属性设置来控制项目的初始状态、动画效果和选择行为等。 总的来说,QML PathView是一个强大的QML组件,它可以在用户界面中实现各种各样的交互效果。通过使用它,我们可以轻松地创建漂亮、灵活和易用的应用程序。 ### 回答3: QML PathViewQt Quick中一个非常有用的组件,它可以快速地创建一个可滚动的列表或视图,让用户能够通过手势或滚动条来浏览内容。PathView支持多种布局方式,可以让用户以多种形式来浏览内容,包括垂直、水平、环形等多种方式。 PathView使用一个Path来布局,可以根据Path的形状来设置内容的显示方式,这个Path可以是任意形状,包括直线、圆弧等等。同时,PathView还提供了许多自定义的选项,比如动画效果、边距、缩放等,使得开发者可以快速创建各种各样的视图。在开发中,PathView通常与ListModel或ArrayModel一起使用,用于将数据绑定到视图上。 在使用PathView时,需要注意一些性能问题。由于PathView默认会缓存所有的元素,如果元素过多,会造成内存开销过大,影响性能。因此,需要合理地设置PathView的一些属性,如缓存大小等,以避免性能问题。 总的来说,QML PathView是一个非常实用的组件,可以快速地创建各种类型的视图,可以使用户更加轻松地浏览内容,同时也提高了开发的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赟赟、嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值