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-导航及告警部分
123 0
Qt [GC9-15]:HUD-导航及告警部分
Qt-网易云音乐界面实现-8 主导航的实现-QtabWidget
哎呀,堕落了,快有小两周没哟更新了,是在是没有动力了,浏览量连三位数都没有,是在是没有写下去的信心。
103 0
Qt-网易云音乐界面实现-8 主导航的实现-QtabWidget
Qt-QML-给我的导航条写一个动画-State-Transition
上篇中,我已经写出一个导航条的,虽然太丑了,不过功能是有了,这次我将要给我的导航条加一个动画,先看下演示效果
124 0
Qt-QML-给我的导航条写一个动画-State-Transition
|
开发工具 C语言
Qt编写自定义控件40-导航进度条
一、前言 导航进度条控件,其实就是支付宝、京东、淘宝订单页面的进度控件,提示当前第几步,总共有几步,然后当前进度特殊颜色显示,每个进度带有时间文字等信息,本控件特意将三种样式风格都集成进去了,京东订单流程样式/淘宝订单流程样式/支付宝订单流程样式,可以动态切换样式,控件自适应任何分辨率,可以自由调整自身大小以适应分辨率的改变,总步骤以及当前步骤都是自动计算占用区域比例,直接提供接口设置步骤对应的文字信息等,接口非常友好。
1245 0
|
开发工具 C语言
Qt编写自定义控件39-导航标签
一、前言 在很多菜单导航界面中,当单击了二级菜单或者三级菜单以后,顶部会显示带箭头或者其他标识的导航标签,可以单击该标签快速切换到对应的界面,也作为指示当前处于哪一级菜单下的界面,主要在WEB中大肆流行,在CS架构的项目中也逐渐应用开来,发现现在越来越多的CS开发的程序,都学习和模仿并应用BS架构的程序中好的方面,尤其是UI方面,取长补短,挺好,专业UI设计师的美感比绝大多数程序员的美感要好很多,他们设计出来的效果都是非常棒的,我个人喜欢去UI中国参看学习各种各样的UI设计,看到好的会下载下来,直接搞个拾色器查看颜色,看下人家的颜色配色搭配的多好。
918 0
|
开发工具 C语言
Qt编写自定义控件9-导航按钮控件
一、前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CSS2属性,配合QPainter这个无敌大法工具,没有什么不能绘制的。
1224 0
|
2月前
|
算法 编译器 Linux
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
18 0
|
2月前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
38 8
C++ Qt开发:QTcpSocket网络通信组件
|
4天前
|
开发框架 编译器 C++
Qt:一个强大的跨平台C++应用程序开发框架
Qt:一个强大的跨平台C++应用程序开发框架
11 1
|
4天前
|
开发框架 Linux C++
Qt:强大的跨平台C++应用程序开发框架
Qt:强大的跨平台C++应用程序开发框架
16 3

推荐镜像

更多