1. 程式人生 > >如何寫一個覆蓋狀態列的全屏的QML應用

如何寫一個覆蓋狀態列的全屏的QML應用

  

從上面的兩張圖中,我們可以看出來一些差別.左邊的一個圖裡,還是有手機狀態的顯示.究其原因,還是因為MainView不讓我們完全覆蓋所有的區域.那麼我們怎麼實現一個完全的全屏應用呢?

在我們的下面的例子中,我們完全拋棄MainView.我們選用Window來完成我們的介面:

Main.qml

import QtQuick 2.4
import Ubuntu.Components 1.3
import QtQuick.Window 2.2

//Rectangle {
//    width: Screen.width
//    height: Screen.height

//    color:"red"
//}

Window {
    id: main
    width: Screen.width
    height: Screen.height
    // special flag only supported by Unity8/MIR so far that hides the shell's
    // top panel in Staged mode
    flags: Qt.Window | 0x00800000

    Image {
        anchors.fill: parent
        source: "images/pic.jpg"
    }

    Label {
        anchors.centerIn: parent
        text: "This a full screen app"
        fontSize: "x-large"
    }

    Component.onCompleted: {
        console.log("visibility: " + main.visibility )
        console.log("width: " + Screen.width + " height: " + Screen.height )
    }
}

在上面的程式碼中,我們同時也設定如下的flags:
    flags: Qt.Window | 0x00800000

這樣我們就可以完全實現一個全屏的應用了.