Android手机有个挺好的功能,它允许你往桌面上放窗口小部件(widget),有一个叫相框的小部件,可以让你选择一张相片,截取一部分,放在相框里。我桌面上就放了几个相框,里面是我女儿的照片,隔阵子换一换,挺喜欢。这次的实例受相框小部件启发而成,我称之为挖头像,先看看运行效果。
运行效果
电脑上的运行效果如图1:
图1 电脑挖头像效果图
Android手机上运行效果如图2:
项目创建
项目创建过程参考《
Qt Quick 之 Hello World 图文详解》,安卓配置参考《
Windows下Qt 5.2 for Android开发入门》和《
Qt on Android:图文详解Hello World全过程》。
项目名称是PickThumb,Android包名是an.qt.PickThumb,其它的木啥咧。
源码分析
C++代码
为了能够让PickThumb正常退出,我给QGuiApplication安装了事件过滤器,过滤BACK按键。下面是main.cpp文件:
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QKeyEvent>
class KeyBackQuit: public QObject
{
public:
KeyBackQuit(QObject *parent = 0)
: QObject(parent)
{}
bool eventFilter(QObject *watched, QEvent * e)
{
switch(e->type())
{
case QEvent::KeyPress:
if( ((QKeyEvent*)e)->key() == Qt::Key_Back )
{
e->accept();
return true;
}
break;
case QEvent::KeyRelease:
if( ((QKeyEvent*)e)->key() == Qt::Key_Back )
{
e->accept();
qApp->quit();
return true;
}
break;