本发明涉及gui应用开发,尤其涉及一种弧形滑动菜单工具绘制方法及弧形滑动菜单工具。
背景技术:
1、目前在qt环境下,现有的技术想要制作一个弧形滑动菜单时,通常的做法是贴图,但是由于这种方式下的滑动路径是水平或者垂直的,因此直接贴图是无法实现弧形滑动的效果,第二种做法是在qpainter里进行绘制,由于qpainter绘制是基于cpu的,因此做出来的效果卡顿不流畅,无法满足人机交互友好体验。
技术实现思路
1、本发明的目的是针对背景技术存在的技术问题,提出一种弧形滑动菜单工具绘制方法,包括如下步骤:
2、自定义model类,该model类继承qabstractlistmodel;
3、把自定义model类注册到qml中;
4、通过listview控件,将自定义model类设置为listview的model;
5、自定义listview的代理,将该代理设置为自定义代理,以形成可动态水平滑动的自定义代理视图;
6、设定自定义代理视图的坐标属性以及旋转属性,以形成弧形滑动菜单工。
7、进一步地,“自定义model类,该model类继承qabstractlistmodel”还包括如下步骤:
8、创建c++model;
9、设置自定义数据类型;
10、通过qt::userrole存储自定义数据。
11、进一步地,自定义数据类型包括站台频段数据、站台类型数据以及按钮类型数据。
12、进一步地,“把自定义model类注册到qml中”还包括如下步骤:
13、通过qmlregistertype实现qml对自定义model类的调用。
14、进一步地,自定义代理使用qml中的button作为代理的基类。
15、进一步地,“设定自定义代理视图的坐标属性以及旋转属性,以形成弧形滑动菜单工具”包括如下步骤:
16、根据椭圆公式计算自定义代理视图的活动轨迹,以形成弧形显示窗口;
17、根据椭圆公式计算自定义代理视图的旋转轨迹,以使代理视图沿弧形显示窗口滑动。
18、进一步地,本发明还提供一种弧形滑动菜单工具,由本发明的一种弧形滑动菜单工具绘制方法所绘制。
19、进一步地,弧形滑动菜单工具应用于收音机界面。
20、本发明的与现有技术相比,具有如下有益的技术效果:本发明通过model-listview,使数据与显示界面分离,model主要用于与数据通信,并为listview控件提供接口,listview控件可通过model对数据进行索引,并将其显示于界面上,可以理解,listview是基于gpu的控件,因此本发明绘制的弧形菜单工具,其菜单工具界面操作时平顺丝滑流畅,不卡顿,运行稳定。当用在收音机界面时,还可以动态收藏频道和删除频道。
1.一种弧形滑动菜单工具绘制方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种弧形滑动菜单工具绘制方法,其特征在于,所述“自定义model类,该model类继承qabstractlistmodel”还包括如下步骤:
3.根据权利要求2所述的一种弧形滑动菜单工具绘制方法,其特征在于,所述自定义数据类型包括站台频段数据、站台类型数据以及按钮类型数据。
4.根据权利要求1所述的一种弧形滑动菜单工具绘制方法,其特征在于,所述“把自定义model类注册到qml中”还包括如下步骤:
5.根据权利要求1所述的一种弧形滑动菜单工具绘制方法,其特征在于,所述自定义代理使用qml中的button作为代理的基类。
6.根据权利要求1所述的一种弧形滑动菜单工具绘制方法,其特征在于,“设定自定义代理视图的坐标属性以及旋转属性,以形成弧形滑动菜单工具”包括如下步骤:
7.一种弧形滑动菜单工具,其特征在于,由上述任一所述的一种弧形滑动菜单工具绘制方法所绘制。
8.根据权利要求7所述的一种弧形滑动菜单工具,其特征在于,所述弧形滑动菜单工具应用于收音机界面。