使用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. magnify.m —— 图像局部放大镜工具函数

    magnify.m 函数下载地址:magnify - File Exchange - MATLAB Central: magnify.m 函数在执行时,是一种交互式处理. 简单演示如下: clear, ...

  2. 4. idea常用快捷键设置(改为eclipse相似)

    转自:https://blog.csdn.net/loveer0/article/details/82697877 idea常用快捷键设置(改为eclipse相似) 目录 idea常用快捷键设置改为e ...

  3. A list is a sequence

    Like a string, a list is a sequence of values. In a string, the values are characters; in a list, th ...

  4. Kali linux 2016.2(Rolling)中metasploit的搜集特定网站的目录结构

    不多说,直接上干货! parent directory site: testfire.net 至于这里怎么FQ,很简单,请见我下面的博客! kali 2.0安装 lantern(成功FQ) shado ...

  5. 实时监控Cat之旅~配置Cat集群需要注意的问题

    在配置cat集群时,有一些设置是我们应该注意的,从它的部署文档中我们可以看到相关信息,但说的还不够明确和重要,大叔今天总结一下Cat集群配置的注意事项 1 服务端datasources.xml用来设置 ...

  6. 【DNN 系列】 下载安装

    1.下载 http://dotnetnuke.codeplex.com/releases/view/119857 2.安装 下载完毕 因为 IIS 7 采用了更安全的 web.config 管理机制, ...

  7. IHttpHandler的学习(0-2)

    这个IHttpHandler,要想到asp.net生命周期 ,想到哪个从你发起请求开始,这个请求通过HttpModule------>IHttpHandler的: 执行HttpModule的一系 ...

  8. <Sicily> Longest Common Subsequence

    一.题目描述 Given a sequence A = < a1, a2, -, am >, let sequence B = < b1, b2, -, bk > be a s ...

  9. Scala之面向对象

    1. Scala基础练习 不使用str.toLong,str.toInt/Integer.valueOf()/Long.valueOf/Integer.parseInt()等,将字符串"12 ...

  10. 在windows下如何新建爬虫虚拟环境和进行scrapy安装

    Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改.Sc ...