Qt-QML-Repeater-导航条

简介: 上篇文章中,我写了一个自己的Button,也就是美化了一下QML自带的Button

image.png

就是上面的这个,剩下的就是放三张图片在上面就可以了,当然了,这个Button在后期,还是会加入更让多的美化,比如,可以加入一些状态切换机制等等。哈哈,先吹牛逼,剩下的后面再说。

 

现在给大家看一下啊我写的一个导航条

image.png

那么,在widget和平时我们写的时候,可能我会会复制很多相似的代码,开始我也是这么写的,哈哈,现在感觉,好LOW,暴露水平了,哈哈


在后面我发现了QML的一个新的东西,重复器Repeater,下面来看看我写的代码吧



   DLNavigation

   {

       navigation:navigation

       ListModel

       {

           id:navigation

           ListElement{btnname:"xxx";btnnomer:"qrc:/Images/001.png";btnhover:"qrc:/Images/002.png";btnpress:"qrc:/Images/003.png"}

           ListElement{btnname:"ccc";btnnomer:"qrc:/Images/001.png";btnhover:"qrc:/Images/002.png";btnpress:"qrc:/Images/003.png"}

           ListElement{btnname:"vvv";btnnomer:"qrc:/Images/001.png";btnhover:"qrc:/Images/002.png";btnpress:"qrc:/Images/003.png"}

           ListElement{btnname:"ddd";btnnomer:"qrc:/Images/001.png";btnhover:"qrc:/Images/002.png";btnpress:"qrc:/Images/003.png"}

           ListElement{btnname:"bbb";btnnomer:"qrc:/Images/001.png";btnhover:"qrc:/Images/002.png";btnpress:"qrc:/Images/003.png"}

           ListElement{btnname:"nnn";btnnomer:"qrc:/Images/001.png";btnhover:"qrc:/Images/002.png";btnpress:"qrc:/Images/003.png"}

           ListElement{btnname:"mmm";btnnomer:"qrc:/Images/001.png";btnhover:"qrc:/Images/002.png";btnpress:"qrc:/Images/003.png"}

       }

   }






这就是我这7个按钮的的全部代码了,


这里我写了一个LIstModel模型来存放我们现在的数据,第一个字段就是我们的按钮的id,后面的三个字段分别是默认模式,鼠标划过模式,鼠标按下模式的样式。



这里大家看到了有一个新的模块 DLNavigation,这个模块就是我的导航条模块,目前只是一个演示的版本,后期还需要加入很多的功能,比如可以更具宽度和高度,来自动判断是列导航,还是行导航,动画等,后期见。


下面在看一下我的DLNavigation的实现代码



import QtQuick 2.0

Rectangle

{

   id:root_Navigation

   color: "transparent"

   property ListModel navigation: naviton.model

   Column

   {

       width: button.width

       spacing: 5

       Repeater

       {

           id:naviton

           model: navigation

           DLButton

           {

               id:btnname

               width: 100

               height: 100

               nomerPic: btnnomer

               hoverPic: btnhover

               pressPic: btnpress


           }

       }

   }

}

这里就是我暂时导航条的实现代码,还是可以哈。



这里就得益于我写了一个自己的Button的,这里还是要写一下我上一篇中的DLButton的模块了



import QtQuick 2.0

import QtQuick.Controls 1.4

import QtQuick.Controls.Styles 1.4

Button

{

   id: root_Button

   property string nomerPic: "qrc:/Images/001.png"

   property string hoverPic: "qrc:/Images/002.png"

   property string pressPic: "qrc:/Images/003.png"

   style: ButtonStyle

   {

       background:Rectangle

       {

           implicitHeight:root_Button.height

           implicitWidth:root_Button.width

           Image

           {

               anchors.fill: parent

               source:

               {

                   if(control.hovered)

                   {

                       if(control.pressed)

                       {

                           pressPic

                       }

                       else

                       {

                           hoverPic

                       }

                   }

                   else

                   {

                       nomerPic

                   }

               }

           }

       }

   }

}



这里就是了,下面我来画一下我这个代码的包含





main.qml(这是主要显示主界面,这里调用的下面的导航条模块)

DLNavigation(这既是导航条的实现代码,调用了DNButton按钮模块)

 DLButton(这里实现了按钮的功能)


这就是目前的代码的层级结构。欢迎大神指正。哈哈哈


目录
相关文章
Qt [GC9-15]:HUD-导航及告警部分
Qt [GC9-15]:HUD-导航及告警部分
147 0
Qt [GC9-15]:HUD-导航及告警部分
Qt-网易云音乐界面实现-8 主导航的实现-QtabWidget
哎呀,堕落了,快有小两周没哟更新了,是在是没有动力了,浏览量连三位数都没有,是在是没有写下去的信心。
150 0
Qt-网易云音乐界面实现-8 主导航的实现-QtabWidget
Qt-QML-给我的导航条写一个动画-State-Transition
上篇中,我已经写出一个导航条的,虽然太丑了,不过功能是有了,这次我将要给我的导航条加一个动画,先看下演示效果
178 0
Qt-QML-给我的导航条写一个动画-State-Transition
|
开发工具 C语言
Qt编写自定义控件40-导航进度条
一、前言 导航进度条控件,其实就是支付宝、京东、淘宝订单页面的进度控件,提示当前第几步,总共有几步,然后当前进度特殊颜色显示,每个进度带有时间文字等信息,本控件特意将三种样式风格都集成进去了,京东订单流程样式/淘宝订单流程样式/支付宝订单流程样式,可以动态切换样式,控件自适应任何分辨率,可以自由调整自身大小以适应分辨率的改变,总步骤以及当前步骤都是自动计算占用区域比例,直接提供接口设置步骤对应的文字信息等,接口非常友好。
1333 0
|
开发工具 C语言
Qt编写自定义控件39-导航标签
一、前言 在很多菜单导航界面中,当单击了二级菜单或者三级菜单以后,顶部会显示带箭头或者其他标识的导航标签,可以单击该标签快速切换到对应的界面,也作为指示当前处于哪一级菜单下的界面,主要在WEB中大肆流行,在CS架构的项目中也逐渐应用开来,发现现在越来越多的CS开发的程序,都学习和模仿并应用BS架构的程序中好的方面,尤其是UI方面,取长补短,挺好,专业UI设计师的美感比绝大多数程序员的美感要好很多,他们设计出来的效果都是非常棒的,我个人喜欢去UI中国参看学习各种各样的UI设计,看到好的会下载下来,直接搞个拾色器查看颜色,看下人家的颜色配色搭配的多好。
959 0
|
开发工具 C语言
Qt编写自定义控件9-导航按钮控件
一、前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CSS2属性,配合QPainter这个无敌大法工具,没有什么不能绘制的。
1275 0
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
181 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
88 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前

推荐镜像

更多