Qt for ios / Qt for Android 设置透明状态栏

前言

所谓的透明状态栏,有些人也称之为沉浸式标题栏,就是要让系统的通知栏也显示出来,这样整体看上起会非常美观,目前用到的所有软件几乎都是这种风格,如果是用原生开发的话其实是非常容易的,但是如果是跨平台开发,比如 Qt 来开发 android 或者 ios,那就有点难搞了,Qt 并没有提供相应的接口来实现,所以对于用 Qt 来做移动开发的童鞋来说,要实现透明状态栏是比较麻烦的,毕竟对原生平台的开发也不是那么熟悉(要是熟悉也不会用 Qt 来做跨平台开发是吧)。
之前用 Qt 做 android 开发的时候,找了很多办法,都是用在 android 原生开发中的,然后还要移植到 Qt 工程中,虽然最后还是做出来了,但是效果一般般,要做的东西也挺多。最后终于在逛 GitHub 的时候无意中发现了一份开源代码,专门处理透明状态栏的,并且使用非常方便。不得不说 GitHub 是程序员的福地。

正文

废话不多说,咱先来看看通常情况下创建一个 Qt 工程在 ios 上的表现形式(android 类似,这里只用 ios 来做演示)
Qt for ios / Qt for Android 设置透明状态栏_第1张图片

顶部的黑色状态栏,可以说是非常丑了,与软件主界面严重不符合。
那接下来看处理过的:
Qt for ios / Qt for Android 设置透明状态栏_第2张图片

怎么样,这看起来就有点接近原生开发的样子了吧,不至于让软件看起来那么 low。

OK,接下来该上代码了。
状态栏的源代码在这里
可支持Qt for android和Qt for ios,直接导入QML工程中就可以用了,非常方便。
感谢 GitHub 这位大神的贡献,并且附带了非常详细的使用说明,简直为 Qt 做移动开发的童鞋提供了非常宝贵的资源。

很多需要相关资源的童鞋可能并没有找到这份代码,所以特意写这篇文章为希望能给需要的人指条路,同时 自己也做个备忘。

你可能感兴趣的:(Qt,for,Android,Qt,for,IOS,Qt,QML)