1. 程式人生 > >QML之不顯示標題欄、邊框

QML之不顯示標題欄、邊框

我使用的Qt版本是Qt 5.3.0,Qt Creator 是3.1.1.

QML做介面實在太方便了,動畫效果很不錯。

建立一個Qt Quick應用程式:


.pro是工程檔案,.pri用來儲存標頭檔案,main.qml就是QML檔案了,main.cpp就不用說了。

看一下自動產生的main.cpp檔案:

#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:///main.qml")));

    return app.exec();
}
QQmlApplicationEngine 是繼承於QObject,因此不能夠在這裡使用setFlags()實現不顯示標題欄。

此時,再看下 main.qml,可以看到Window元件,在幫助文件中是這樣說的:

發現Windows有個flags屬性,型別是Qt::WindowFlags,這就是我們需要的。

現在可以修改main.qml中的程式碼:

import QtQuick 2.2
import QtQuick.Window 2.1

Window {
    visible: true
    width: 360
    height: 360
    flags:Qt.FramelessWindowHint   //添加了這一句

    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }

    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }
}
效果,發現邊框沒了:

稍微添加了一些圖片和文字,效果就是這樣的: