qml _base

#include <QGuiApplication>
从继承关系看,QApplication父类是QGuiApplication,QGuiApplication父类是QCoreApplication。

开发的应用无图像界面,就使用QCoreApplication;有图形界面,只使用QML实现,使用QGuiApplication,使用QWidget,或者QML与QWidget使用,则用QApplication。使用系统托盘systemtrayicon,就必须使用QApplication,否则无法创建系统托盘。

QApplication包含的功能最多,也就最笨重,QGuiApplication到QCoreApplication越来越轻量。分的这么细,主要目标是实现Qt Lite,到Qt5.8开始,实现用到什么模块,加载什么模块,尽量减小编译后的app体积。
#include <QQmlApplicationEngine>
//m.cpp 主要是把QML加载在程序中
int main(int argc, char *argv[])
{
#if defined(Q_OS_WIN)
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif

    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    //调用 qml
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}
import QtQuick 2.9
import QtQuick.Window 2.2
//设置一个对象  长宽
/*
Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
}
*/
//设置一个对象  长宽
Window
{

    //visible : 这个属性用于设置元素的可见性,为true时,元素可见,false时,元素不可见,默认为true。
    visible: true
    width:640
    height:480
     title: qsTr("Hello World")
    //背景颜色
    color:"green"
    Text
    {
        text:qsTr("selen")
        //对象颜色
        color:"red"
        anchors.centerIn: parent
    }
    MouseArea
    {
        //锚布局  是将子控件放在父控件的正中心,子控件的宽高是自己设置的;
        anchors.centerIn: parent
        //如果在这个区域
        onClicked:
            {
        Qt.quit();
        }
    }
}



posted @ 2019-06-23 05:29  countryboy666  阅读(196)  评论(0编辑  收藏  举报