使用QML自绘页面导航条
使用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自绘页面导航条的更多相关文章
- 小程序开发-页面导航栏navigation-bar组件
导航栏navigation-bar 页面导航条配置节点,用于指定导航栏的一些属性.只能是 page-meta 组件内的第一个节点,需要配合它一同使用. 通过这个节点可以获得类似于调用 wx.setNa ...
- Swift - 使用导航条和导航条控制器来进行页面切换
通过使用导航条(UINavigationBar)与导航条控制器(UINavigationController)可以方便的在主页面和多层子页面之间切换.下面通过一个简单“组件效果演示”的小例子来说明如何 ...
- 15 Flutter BottomNavigationBar自定义底部导航条 以及实现页面切换 以及模块化
效果: /** * Flutter BottomNavigationBar 自定义底部导航条.以及实现页面切换: * BottomNavigationBar是底部导航条,可以让我们定义底部Tab ...
- 基于Bootstrap实现下图所示效果的页面,一个白底的带有两个菜单项、一个下拉菜单和一个登录表单的基本导航条
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...
- 1.bootstrap练习笔记-导航条
bootstrap练习笔记 1.关于导航栏 官网链接:http://v3.bootcss.com/components/#nav 结构大概是这样的: nav标签标识导航栏 class为navbar ...
- 纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)
虽然网上类似甚至相同的案例有很多,但是我还是写下,以记下笔记,也可供大家参考 希望大家可以指导批评~~ 首先我们以列表ul li 来开始我们菜单也可以说导航条的制作: 在页面中我们首先构建以下XHTM ...
- bootstrap框架 导航条组件使用
本文记载boot 导航条组件使用方法 导航条组件 导航条是在您的应用或网站中作为导航页头的响应式基础组件.它们在移动设备上可以折叠(并且可开可关),且在视口(viewport)宽度增加时逐渐变为水平展 ...
- 【iOS开发-22】navigationBar导航条和navigationItem设置:基本搞定导航条上的文字和按钮以及各种跳转
http://blog.csdn.net/weisubao/article/details/39646739?utm_source=tuicool&utm_medium=referral (1 ...
- Bootstrap_导航条
一.基础导航条 在制作一个基础导航条时,主要分以下几步: 第一步:首先在制作导航的列表(<ul class=”nav”>)基础上添加类名“navbar-nav” 第二步:在列表外部添加一个 ...
随机推荐
- MySQL优化-存储引擎
MySQL优化-存储引擎 标签(空格分隔): mysql 存储引擎 查看存储引擎 show engines Myisam: 表锁 全文索引 Innodb: 行锁 事物 外键 Memory: 内存存储引 ...
- Kali linux 2016.2(Rolling)里Metasploit的常用模块
端口扫描 auxiliary/scanner/portscanscanner/portscan/ack ACK防火墙扫描scanner/portscan/ftpbounce FTP跳端口扫描scann ...
- Oozie框架基础
* Oozie框架基础 官方文档地址:http://oozie.apache.org/docs/4.0.0/DG_QuickStart.html 除Oozie之外,类似的框架还有: ** Zeus:h ...
- sql笔试题-1
在oracle下sql:比较巧妙地是group by 部分 E from (select a.team,b.y from nba a,nba b ) c group by (c.y-rownum) o ...
- 共用体 union
共用体是一种数据格式,能够存储不同的数据类型,但只能同时存储其中的一种类型. union one4all { int int_val; double double_val; long long_val ...
- decision tree 决策树(一)
一 决策树 原理:分类决策树模型是一种描述对实例进行分类的树形结构.决策树由结点(node)和有向边(directed edge)组成.结点有两种类型:内部结点(internal node)和叶结点( ...
- myisam和innodb的qubie
1.Myisam 支持锁表,innoDB 支持行锁. 2.innoDB 和 BDB 支持事务. 3.Myisam 与 innoDB 索引的区别: Myisam 无论是主键索引还是其他索引,索 ...
- 负载均衡集群总结(Haproxy)
环境:Centos 6.9,Mysql 8.0 首先要先配置mysql主从复制集,可以参考我的上一篇>>Mysql 主从复制总结(详细) 我的主节点在(master):192.168.11 ...
- 部分vivo和oppo手机,使用上传图片功能,可能会出现退出webview的现象(回退到app的入口页面)
在公司的app里面嵌入了一个h5页面,h5页面有个使用图片上传功能,上传图片出现闪退的现象 问题描述:vivo手机,在app内的wap页面使用上传图片的功能,在选择好图片点击确认按钮后,出现退出整个w ...
- NodeJS代码调试
1.在Chrome打开chrome://flags/#enable-devtools-experiments 2.激活Developer Tools experiments 3.重启Chrome 4. ...