使用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. 天津大学各种Latex模板共享链接

    多元统计课最后Ppt里说要共享一下模板.这里给出链接 https://www.github.com/6gbluewind 注:写本文时还未上传 ************* 下午终于有网了,于是上传了一 ...

  2. PostgreSQL源代码中插件的使用

    如果编译数据库时使用了gmake world和gmake install-world, 所有的插件都会被安装, 那么就不需要再次安装了. 插件目录 contrib 进入要安装的插件目录, 例如 cd ...

  3. 14个优秀 JS 前端框架、库、工具及其使用时机

    这篇文章主要描述现今流行的一些 Javascript web 前端框架,库以及它们的适用场景. 新的 Javascript 库层出不穷,从而Web 社区愈发活跃.多样.在多方面快速发展.详细去描述每一 ...

  4. 51Nod 和为k的连续区间

    一整数数列a1, a2, ... , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 <= i <= j <= n),使得a[i] + ... + a[j] = k ...

  5. GoldenGate V11.1数据复制限制

    以下对goldengate数据复制的限制情况进行说明. 不支持文件等非结构化数据复制 GoldenGate依赖对于数据库日志的解析获取数据变化,因此只能支持数据库中的数据变化复制,无法支持文件等非结构 ...

  6. 去除input的前后的空格

    这里用的是jquery的方法

  7. NodeJS学习笔记 (12)网络地址解析-url(ok)

    模块概述 nodejs中,提供了url这个非常实用的模块,用来做URL的解析.在做node服务端的开发时会经常用到.使用很简单,总共只有3个方法. 正式讲解前,各位同学先把下面这个图记在心上(来自no ...

  8. luogu-1908 逆序对 离散化+树状数组

    题目链接:https://www.luogu.org/problem/show?pid=P1908 题意 简单的求逆序对 思路 用树状数组来做逆序对 对于过大的数字来讲,用离散化处理即可 比赛的时候没 ...

  9. .ashx 实现自动路由和参数填充

    在Mvc中访问控制器,参数填充和路由控制都非常方便,但之前项目用的是webFrom,和js交互的ashx页面,路由非常麻烦要根据传进来关键字来做switch,参数填充更坑,要一个一个去form中取出来 ...

  10. ArcGIS api for javascript——动态创建图层列表

    描述 本例循环地图服务里的所有图层并增加每个图层到一个带checkbox的列表,checkbox能设置图层的显示或隐藏.动态创建列表的优势是所有的图层都会包含在列表中,即使服务器管理员删除或增加了图层 ...