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

Qt 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  
    }  
}  
效果,發現邊框沒了: