使用QML自绘页面导航条

近期使用QML制作项目,依照要求。须要制作成分页的插件。遗憾的是,QML的控件库Qt Quick都没有现成的控件,于是我尝试着自己实现自绘页面导航条。

原创文章,反对未声明的引用。原博客地址:http://blog.csdn.net/gamesdev/article/details/39376061

我首先观察CSDN的页面导航条。事实上和大多数Web的页面导航条一样。都有首页、详细页码、下一页、上一页、尾页这种元素,实现起来也不是太难。

事实上这个需求也算是检验QML开发能力的一次考察。

我略微花了一点时间实现了这种显示效果。例如以下图:

能够选择对应的页数。以便进行分页显示。

下载地址:这里

import QtQuick 2.2
import QtQuick.Controls 1.1 ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr( "Page navigation bar example" ) menuBar: MenuBar
{
Menu
{
title: qsTr( "File" )
MenuItem
{
text: qsTr( "Exit" )
onTriggered: Qt.quit( );
}
}
} property var json:
[
[
{ "id": 1, "value": "长青路" },
{ "id": 2, "value": "建设路" },
{ "id": 3, "value": "光明路" },
{ "id": 4, "value": "矿工路" },
{ "id": 5, "value": "开源路" }
],
[
{ "id": 6, "value": "唐宫中路" },
{ "id": 7, "value": "金业路" },
{ "id": 8, "value": "九都东路" },
{ "id": 9, "value": "古仓街" },
{ "id": 10, "value": "道南路" }
],
[
{ "id": 11, "value": "张辽南路" },
{ "id": 12, "value": "古北街" },
{ "id": 13, "value": "开发南路" },
{ "id": 14, "value": "朔神路" },
{ "id": 15, "value": "同太路" }
],
[
{ "id": 1, "value": "长青路" },
{ "id": 2, "value": "建设路" },
{ "id": 3, "value": "光明路" },
{ "id": 4, "value": "矿工路" },
{ "id": 5, "value": "开源路" }
],
[
{ "id": 6, "value": "唐宫中路" },
{ "id": 7, "value": "金业路" },
{ "id": 8, "value": "九都东路" },
{ "id": 9, "value": "古仓街" },
{ "id": 10, "value": "道南路" }
],
[
{ "id": 11, "value": "张辽南路" },
{ "id": 12, "value": "古北街" },
{ "id": 13, "value": "开发南路" },
{ "id": 14, "value": "朔神路" },
{ "id": 15, "value": "同太路" }
]
] ListModel
{
id: tableModel Component.onCompleted: append( json[0] )
} property int initialColumnWidth: tableView.width / 3
property int recordPerPage: 15
TableView
{
id: tableView
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: pageNavigationBar.top
anchors.bottomMargin: 5
model: tableModel TableViewColumn
{
role: "id"
title: qsTr( "id" )
width: initialColumnWidth
} TableViewColumn
{
role: "value"
title: qsTr( "value" )
width: initialColumnWidth
}
} PageNavigationBar
{
id: pageNavigationBar
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: 5
maxPage: json.length
totalRecord: json.length * json[0].length onPageClicked:
{
tableModel.clear( );
tableModel.append( json[page - 1] );
}
}
}

使用QML自绘页面导航条的更多相关文章

  1. 小程序开发-页面导航栏navigation-bar组件

    导航栏navigation-bar 页面导航条配置节点,用于指定导航栏的一些属性.只能是 page-meta 组件内的第一个节点,需要配合它一同使用. 通过这个节点可以获得类似于调用 wx.setNa ...

  2. Swift - 使用导航条和导航条控制器来进行页面切换

    通过使用导航条(UINavigationBar)与导航条控制器(UINavigationController)可以方便的在主页面和多层子页面之间切换.下面通过一个简单“组件效果演示”的小例子来说明如何 ...

  3. 15 Flutter BottomNavigationBar自定义底部导航条 以及实现页面切换 以及模块化

    效果: /**  * Flutter  BottomNavigationBar 自定义底部导航条.以及实现页面切换:  * BottomNavigationBar是底部导航条,可以让我们定义底部Tab ...

  4. 基于Bootstrap实现下图所示效果的页面,一个白底的带有两个菜单项、一个下拉菜单和一个登录表单的基本导航条

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...

  5. 1.bootstrap练习笔记-导航条

    bootstrap练习笔记 1.关于导航栏   官网链接:http://v3.bootcss.com/components/#nav 结构大概是这样的: nav标签标识导航栏 class为navbar ...

  6. 纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)

    虽然网上类似甚至相同的案例有很多,但是我还是写下,以记下笔记,也可供大家参考 希望大家可以指导批评~~ 首先我们以列表ul li 来开始我们菜单也可以说导航条的制作: 在页面中我们首先构建以下XHTM ...

  7. bootstrap框架 导航条组件使用

    本文记载boot 导航条组件使用方法 导航条组件 导航条是在您的应用或网站中作为导航页头的响应式基础组件.它们在移动设备上可以折叠(并且可开可关),且在视口(viewport)宽度增加时逐渐变为水平展 ...

  8. 【iOS开发-22】navigationBar导航条和navigationItem设置:基本搞定导航条上的文字和按钮以及各种跳转

    http://blog.csdn.net/weisubao/article/details/39646739?utm_source=tuicool&utm_medium=referral (1 ...

  9. Bootstrap_导航条

    一.基础导航条 在制作一个基础导航条时,主要分以下几步: 第一步:首先在制作导航的列表(<ul class=”nav”>)基础上添加类名“navbar-nav” 第二步:在列表外部添加一个 ...

随机推荐

  1. Kali linux 2016.2(Rolling)里Metasploit的常用模块

    端口扫描 auxiliary/scanner/portscanscanner/portscan/ack ACK防火墙扫描scanner/portscan/ftpbounce FTP跳端口扫描scann ...

  2. ajax中Post和Get请求方式的区别?

    ajax中Post和Get请求方式的区别: 1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示. 2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的 ...

  3. 关于servlet的@WebServlet注解

    @WebServlet注解用于标注在一个继承了HttpServlet类之上,属于类级别的注解. 1.jsp页面 通过action提交到RegistServlet 类: <form action= ...

  4. 关于git及其github的使用

    一:序言(就是瞎扯) 人们都说不会使用git和github的程序员都不是好程序员,是的,当我第一次听到的时候有点失望.因为我也不会...但是这句话激起了我学习使用git的动力(其实也没怎么深入的学习) ...

  5. CF546E Soldier and Traveling(网络流,最大流)

    CF546E Soldier and Traveling 题目描述 In the country there are \(n\) cities and \(m\) bidirectional road ...

  6. unity SystemInfo类 获得电量battery

    我觉得用Unity 开发最爽的地方, 不是unity跨平台,而是用其他语言,要用很复杂的逻辑才能完成的功能,unity用一两句代码就能搞定 就比如说获取Android 系统的电量,不用发广播,不用申请 ...

  7. unity C# 获取有关文件、文件夹和驱动器的信息

    class FileSysInfo { static void Main() { // You can also use System.Environment.GetLogicalDrives to ...

  8. zookeeper 性能测试

    zookeeper压力测试:性能对比(3个节点,5个节点,7个节点 创建节点.删除节点.设置节点数据.读取节点数据性能及并发性能) 测试结果如下: 五次测试三节点结果: 创建100W节点用时:15.0 ...

  9. Visual Studio2008 和2010 执行程序出现的黑框马上消失解决方法

    1 在程序最后加         system("PAUSE");  要注意包括头文件#include"stdlib.h"   //system须要调用这个   ...

  10. Win8.1应用开发之文件操作

    在操作文件之前,先相应用的应用功能声明进行设定.用户通过C#(非UI)对win8.1上的文件进行訪问,仅仅能局限于图片,音乐,视频和文档四个目录. 而通过文件选取器则能訪问到整个系统的文件. (一)应 ...