1. 程式人生 > >Qt for ios / Qt for Android 設定透明狀態列

Qt for ios / Qt for Android 設定透明狀態列

前言

所謂的透明狀態列,有些人也稱之為沉浸式標題欄,就是要讓系統的通知欄也顯示出來,這樣整體看上起會非常美觀,目前用到的所有軟體幾乎都是這種風格,如果是用原生開發的話其實是非常容易的,但是如果是跨平臺開發,比如 Qt 來開發 android 或者 ios,那就有點難搞了,Qt 並沒有提供相應的介面來實現,所以對於用 Qt 來做移動開發的童鞋來說,要實現透明狀態列是比較麻煩的,畢竟對原生平臺的開發也不是那麼熟悉(要是熟悉也不會用 Qt 來做跨平臺開發是吧)。
之前用 Qt 做 android 開發的時候,找了很多辦法,都是用在 android 原生開發中的,然後還要移植到 Qt 工程中,雖然最後還是做出來了,但是效果一般般,要做的東西也挺多。最後終於在逛 GitHub 的時候無意中發現了一份開原始碼,專門處理透明狀態列的,並且使用非常方便。不得不說 GitHub 是程式設計師的福地。

正文

廢話不多說,咱先來看看通常情況下建立一個 Qt 工程在 ios 上的表現形式(android 類似,這裡只用 ios 來做演示)

頂部的黑色狀態列,可以說是非常醜了,與軟體主介面嚴重不符合。
那接下來看處理過的:

怎麼樣,這看起來就有點接近原生開發的樣子了吧,不至於讓軟體看起來那麼 low。

OK,接下來該上程式碼了。
狀態列的原始碼在這裡
可支援Qt for android和Qt for ios,直接匯入QML工程中就可以用了,非常方便。
感謝 GitHub 這位大神的貢獻,並且附帶了非常詳細的使用說明,簡直為 Qt 做移動開發的童鞋提供了非常寶貴的資源。

很多需要相關資源的童鞋可能並沒有找到這份程式碼,所以特意寫這篇文章為希望能給需要的人指條路,同時 自己也做個備忘。