QML PathView之 PathQuad

qml中PathView元素自带一个很有意思的例子,效果如图:

其中Path段代码如下:

            path: Path {
                startX: 120;
                startY: 100
                PathQuad {
                    x: 120;
                    y: 25;
                    controlX: 260;//控制点由 controlX 、 controlY或 relativeControlX 、 relativeControlY 来定义
                    controlY: 75
                }

                PathQuad {
                    x: 120;
                    y: 100;
                    controlX: -20;
                    controlY: 75
                }
            }

对于Path中的PathQuad感觉到很抽象,于是百度了下js  canvas quadraticCurveTo() 方法,找到如下解释:

quadraticCurveTo() 方法通过使用表示二次贝塞尔曲线的指定控制点,向当前路径添加一个点。

提示:二次贝塞尔曲线需要两个点。第一个点是用于二次贝塞尔计算中的控制点,第二个点是曲线的结束点。曲线的开始点是当前路径中最后一个点。如果路径不存在,那么请使用 beginPath() 和 moveTo() 方法来定义开始点。

二次贝塞尔曲线

  • 开始点:moveTo(20,20)
  • 控制点:quadraticCurveTo(20,100,200,20)
  • 结束点:quadraticCurveTo(20,100,200,20)

通过该示例图,一下就能看明白 PathQuad的意义,但是PathQuad虽然定义了路径,但是是不可见的,于是使用quadraticCurveTo画出路径:

 至此,对PathQuad有一个直观的认识。

使用 PathAttribute 

效果如下:

PathAttribute 官方说明:

The PathAttribute object allows attributes consisting of a name and a value to be specified for various points along a path. The attributes are exposed to the delegate as Attached Properties. The value of an attribute at any particular point along the path is interpolated from the PathAttributes bounding that point.

The example below shows a path with the items scaled to 30% with opacity 50% at the top of the path and scaled 100% with opacity 100% at the bottom. Note the use of the PathView.iconScale and PathView.iconOpacity attached properties to set the scale and opacity of the delegate.

下面摘抄一段 安晓辉老师写的《Qt Quick 核心编程》里面的一段介绍,能更好的让我们理解:

这本书我不但有纸质的还有电子的,第一次看是2018年了,当时还做了笔记,但是看的也是似懂非懂,今日再看,果然又是另一种韵味。 

### 回答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 PathView是Qt Quick中一个非常有用的组件,它可以快速地创建一个可滚动的列表或视图,让用户能够通过手势或滚动条来浏览内容。PathView支持多种布局方式,可以让用户以多种形式来浏览内容,包括垂直、水平、环形等多种方式。 PathView使用一个Path来布局,可以根据Path的形状来设置内容的显示方式,这个Path可以是任意形状,包括直线、圆弧等等。同时,PathView还提供了许多自定义的选项,比如动画效果、边距、缩放等,使得开发者可以快速创建各种各样的视图。在开发中,PathView通常与ListModel或ArrayModel一起使用,用于将数据绑定到视图上。 在使用PathView时,需要注意一些性能问题。由于PathView默认会缓存所有的元素,如果元素过多,会造成内存开销过大,影响性能。因此,需要合理地设置PathView的一些属性,如缓存大小等,以避免性能问题。 总的来说,QML PathView是一个非常实用的组件,可以快速地创建各种类型的视图,可以使用户更加轻松地浏览内容,同时也提高了开发的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Liu-Eleven

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

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

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

打赏作者

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

抵扣说明:

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

余额充值