九宫格划指锁屏视图
Lisence: MIT, 请保留本文档说明
Author: surfsky.cnblogs.com 2015-02

【先看效果】

【下载】

http://download.csdn.net/detail/surfsky/8444999

【核心代码】

     //----------------------------------
// 放置9个圆点
//----------------------------------
Grid{
id: grid
width: 400
height: 400
anchors.bottom: parent.bottom
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottomMargin: 50
columns: 3
rows: 3
spacing: (width-ptWidth*3)/2 LockPoint{width:ptWidth; lockId: 1;}
LockPoint{width:ptWidth; lockId: 2;}
LockPoint{width:ptWidth; lockId: 3;}
LockPoint{width:ptWidth; lockId: 4;}
LockPoint{width:ptWidth; lockId: 5;}
LockPoint{width:ptWidth; lockId: 6;}
LockPoint{width:ptWidth; lockId: 7;}
LockPoint{width:ptWidth; lockId: 8;}
LockPoint{width:ptWidth; lockId: 9;}
} //----------------------------------
// 绘制圆点和连线
//----------------------------------
Canvas{
id: canvas
anchors.fill: grid
opacity: 0.6
MouseArea{
id: area
anchors.fill: parent
onPressed: checkAndDraw();
onPositionChanged: checkAndDraw();
// 检测并绘制
function checkAndDraw(){
if(area.pressed) {
root.checkLockPoints();
canvas.requestPaint();
}
}
} onPaint: {
var ctx = getContext("2d");
ctx.clearRect(0, 0, width, height);
drawPasswordGraphy(ctx);
} // 绘制密码图
function drawPasswordGraphy(ctx){
var lastPt = null;
for (var i=0; i<lockPoints.length; i++){
var currPt = lockPoints[i];
drawRound(ctx, currPt.center, 30, 'yellow');
if (lastPt != null)
drawLine(ctx, lastPt.center, currPt.center, ptLineWidth, 'yellow');
lastPt = currPt;
}
} // 绘制圆点
function drawRound(ctx, pt, r, c){
ctx.beginPath();
ctx.arc(pt.x, pt.y, r, 0, 2*Math.PI);
ctx.fillStyle = c;
ctx.fill();
} // 绘制线段
function drawLine(ctx, p1, p2, w, c){
ctx.beginPath();
ctx.moveTo(p1.x, p1.y);
ctx.lineTo(p2.x, p2.y);
ctx.lineWidth = w;
ctx.strokeStyle = c;
ctx.stroke();
}
}

qt qml 九宫格划指锁屏视图的更多相关文章

  1. 【腾讯Bugly干货分享】浅谈Android自定义锁屏页的发车姿势

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57875330c9da73584b025873 一.为什么需要自定义锁屏页 锁屏 ...

  2. 浅谈 Android 自定义锁屏页的发车姿势

    作者:blowUp,原文链接:http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653577446&idx=2&sn= ...

  3. 浅谈Android自定义锁屏页的发车姿势

    一.为什么需要自定义锁屏页 锁屏作为一种黑白屏时代就存在的手机功能,至今仍发挥着巨大作用,特别是触屏时代的到来,锁屏的功用被发挥到了极致.多少人曾经在无聊的时候每隔几分钟划开锁屏再关上,孜孜不倦,其酸 ...

  4. iOS开发——使用技术OC篇&简单九宫格锁屏功能的实现与封装

    简单九宫格锁屏功能的实现与封装 首先来看看最后的实现界面. 在这开始看下面的内容之前希望你能先大概思考活着回顾一下如果 你会怎么做,只要知道大概的思路就可以. 由于iphone5指纹解锁的实现是的这个 ...

  5. fcode-页面九宫格自动锁屏jquery插件

    fcode.js 自动锁屏插件 fcode.js是什么? fcode.js是一款web页面九宫格自动锁屏js插件,依赖于jquery, 会在设置的范围里,判断用户有无操作,然后执行锁屏的功能. 就一个 ...

  6. Java计算手机九宫格锁屏图案连接9个点的方案总数

    (一)问题 九宫格图案解锁连接9个点共有多少种方案? (二)初步思考 可以把问题抽象为求满足一定条件的1-9的排列数(类似于“八皇后问题”),例如123456789和987654321都是合法的(按照 ...

  7. Qt - 锁屏界面加虚拟小键盘

    一.实现效果 鼠标点击"密码输入栏",弹出虚拟键盘,输入锁屏密码后,点击虚拟键盘外部区域,则会隐藏虚拟键盘,再点击登录,成功进入主界面. 二.虚拟键盘-程序设计 2.1 frmNu ...

  8. Qt 实现超时锁屏

    最近使用Qt实现超时锁屏的功能(工控机触摸屏),当手长时间不触摸屏幕的时候,程序超时会显示锁屏窗口. 一.效果 主窗口超时显示锁屏窗口: 系统窗口超时显示锁屏窗口: 二.实现思路 首先开启一个线程用于 ...

  9. Qt qml listview 列表视图控件(下拉刷新、上拉分页、滚动轴)

    Qt qml listview下拉刷新和上拉分页主要根据contentY来判断.但要加上顶部下拉指示器.滚动条,并封装成可简单调用的组件,着实花了我不少精力:) [先看效果]    [功能] 下拉刷新 ...

随机推荐

  1. ps工具箱总结

    1.矩形工具 四个属性 1.选区2.重叠选区3.减去选区4.区域化缩小选区 样式:固定比例 固定大小 正常 //前两项可以设置宽高 3.快速选择工具.魔棒工具 快速选择工具: 三个属性 1.选区2.增 ...

  2. HTML基础篇之HTML基本结构

    课堂知识总结 第一接触和学习HTML知识在学习过程中对所属的标签的自己认为的理解和解释. HTML元素:文档里面的标签和内容. 比如:<h1>大家好</h1>  左边的是开始标 ...

  3. ThinkPHP 3.2.3 使用 PHPExcel 处理 Excel 表格

    下载 PHPExcel(https://github.com/PHPOffice/PHPExcel) 把下载的 zip 包解压至 ./ThinkPHP/Library/Vendor 下 一.导入 Ex ...

  4. ExtJS笔记 Field

    Fields are used to define what a Model is. They aren't instantiated directly - instead, when we crea ...

  5. mysql 使用存储过程批量插数据

    #创建测试表 DROP TABLE IF EXISTS test.test; CREATE TABLE test.test( id int(10) not null auto_increment, a ...

  6. 自定义组件-IPEdit

    输入IP用的.....支持windows风格显示 unit HSIPEdit; // ********************************************************* ...

  7. MXNET手写体识别的例子

    安装完MXNet之后,运行了官网的手写体识别的例子,这个相当于深度学习的Hello world了吧.. http://mxnet.io/tutorials/python/mnist.html 运行的过 ...

  8. HBASE数据模型&扩展和负载均衡理论

    示例数据模型 HBase中扩展和负载均衡的基本单元成为region,region本质上是以行健排序的连续存储区间.如果region太大,系统会把它们 自动拆分,相反的,就是把多个region合并,以减 ...

  9. C#常用控件介绍

                                                  目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichTe ...

  10. Linux从零单排(二):setuptools、pip、anaconda2的环境配置

    为了更方便的使用Python的类库,需要进行相应的配置 (一)setuptools的配置 1.setuptools的下载 命令行输入wget https://pypi.python.org/packa ...