首页 > 其他 > 详细

Qt5学习(2)

时间:2018-06-23 16:33:58      阅读:181      评论:0      收藏:0      [点我收藏+]

1.学习了qt quick application

这是一种跟application不同的设计方式。主要就是靠“拖拖拽拽”,然后设置属性(颜色,大小),布局(margins等),然后要注意控件的从属关系。总体来说操作简单,但是花样较少。

2.学习了将QML object暴露给C++

书上的例子:

头文件

#ifndef N_H
#define N_H

#include<QObject>
#include<QDebug>

class N:public QObject
{Q_OBJECT
    public:
    QObject *myObject;
    //explicit MyLabel(QObject *parent = 0);如果加上这一句就编译错误,不知道什么原因
    Q_INVOKABLE void setMyObject(QObject* obj);
};

#endif // N_H

.cpp文件

 void N::setMyObject(QObject* obj)
    { // Set the object pointer
      myObject = obj;
      myObject->setProperty("visible", QVariant(true));
     myObject->setProperty("text", QVariant("Bye bye world!"));

}

然后main文件:

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include<QtQml>
#include"n.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    qmlRegisterType<N>("NN", 1, 0, "N");
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

最后是main.qml内:

import QtQuick 2.2
import QtQuick.Window 2.1
import NN 1.0

Window {
    visible: true
    width: 360
    height: 360

    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }
    N
    {
        id:littleN;
    }
    Text {
        id:sha;
        text: qsTr("Hello World")
        anchors.centerIn: parent
        Component.onCompleted:
        {
         littleN.setMyObject(sha);
        }
    }
}

除了这样设置属性之外,还介绍了函数的调用,可是没有看懂。。。那就以后再看吧:)

也就是这个函数的用法:

QMetaObject::invokeMethod

 

Qt5学习(2)

原文:https://www.cnblogs.com/sggggr/p/9217388.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!