qt qml 九宫格划指锁屏视图
九宫格划指锁屏视图
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 九宫格划指锁屏视图的更多相关文章
- 【腾讯Bugly干货分享】浅谈Android自定义锁屏页的发车姿势
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57875330c9da73584b025873 一.为什么需要自定义锁屏页 锁屏 ...
- 浅谈 Android 自定义锁屏页的发车姿势
作者:blowUp,原文链接:http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653577446&idx=2&sn= ...
- 浅谈Android自定义锁屏页的发车姿势
一.为什么需要自定义锁屏页 锁屏作为一种黑白屏时代就存在的手机功能,至今仍发挥着巨大作用,特别是触屏时代的到来,锁屏的功用被发挥到了极致.多少人曾经在无聊的时候每隔几分钟划开锁屏再关上,孜孜不倦,其酸 ...
- iOS开发——使用技术OC篇&简单九宫格锁屏功能的实现与封装
简单九宫格锁屏功能的实现与封装 首先来看看最后的实现界面. 在这开始看下面的内容之前希望你能先大概思考活着回顾一下如果 你会怎么做,只要知道大概的思路就可以. 由于iphone5指纹解锁的实现是的这个 ...
- fcode-页面九宫格自动锁屏jquery插件
fcode.js 自动锁屏插件 fcode.js是什么? fcode.js是一款web页面九宫格自动锁屏js插件,依赖于jquery, 会在设置的范围里,判断用户有无操作,然后执行锁屏的功能. 就一个 ...
- Java计算手机九宫格锁屏图案连接9个点的方案总数
(一)问题 九宫格图案解锁连接9个点共有多少种方案? (二)初步思考 可以把问题抽象为求满足一定条件的1-9的排列数(类似于“八皇后问题”),例如123456789和987654321都是合法的(按照 ...
- Qt - 锁屏界面加虚拟小键盘
一.实现效果 鼠标点击"密码输入栏",弹出虚拟键盘,输入锁屏密码后,点击虚拟键盘外部区域,则会隐藏虚拟键盘,再点击登录,成功进入主界面. 二.虚拟键盘-程序设计 2.1 frmNu ...
- Qt 实现超时锁屏
最近使用Qt实现超时锁屏的功能(工控机触摸屏),当手长时间不触摸屏幕的时候,程序超时会显示锁屏窗口. 一.效果 主窗口超时显示锁屏窗口: 系统窗口超时显示锁屏窗口: 二.实现思路 首先开启一个线程用于 ...
- Qt qml listview 列表视图控件(下拉刷新、上拉分页、滚动轴)
Qt qml listview下拉刷新和上拉分页主要根据contentY来判断.但要加上顶部下拉指示器.滚动条,并封装成可简单调用的组件,着实花了我不少精力:) [先看效果] [功能] 下拉刷新 ...
随机推荐
- php 跨服务器ftp移动文件
$ftp_server = "120.25.1.1";$ftp_user_name = "p1111";$ftp_user_pass = "psa12 ...
- linux引导流程
本章重点: 1.linux引导流程 2.linux运行级别 3.linux启动服务管理 4.GRUB配置与应用 5.启动故障分析解决 linux启动流程 1.固件(fireware):固话在硬件上的程 ...
- matlab处理图像代码
1.图像的读取MATLAB中从图像文件中读取数据用函数imread(),这个函数的作用就是将图像文件的数据读入矩阵中,此外还可以用imfinfo()函数查看图像文件的信息(见例1)%例1:图像数据及图 ...
- 神经网络之Hebb学习规则
- shape
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http:/ ...
- Unity5和WebGL移植指南的一些总结
对于手游开发者来说,更新版本往往意味着非常复杂的过程,你需要根据反馈做更新.测试.提交然后等待审核,而由于不需要客户端依赖,页游往往是快速测试游戏版本的最佳途径,很多人可能都知道Unity 5可以再不 ...
- 兼容iOS 10 资料整理笔记
原文链接:http://www.jianshu.com/p/0cc7aad638d9 1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化 ...
- 视图UIView的大小和位置属性详解
UIView类中定义了三个属性,分别是frame.bounds与center属性: IKit中的坐标系X轴正方向为水平向右,Y轴正方向为竖直向下. frame属性指的是视图在其父视图坐标系中的位置与尺 ...
- avalon的表单验证
表单验证 avalon内置了强大的表单验证功能,它需要结合ms-duplex, ms-validate, ms-rules这个三个指令一起使用. ms-duplex负责监控每个表单元素的输入. ms- ...
- JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log
前面三篇文章分别讲述了 HTTP Mirror Server . Debug PostProcessor 和 Debug Samper 的脚本调试实例.此文主要讲述第四种调试方法,通过 BeanShe ...