• Qt5学习(2)


    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
         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

  • 相关阅读:
    cunda 常用命令,删除,创建,换源
    kivy画板
    基础易忘记
    关于tkinter
    airtest常用指令
    在kivy中加图片
    QQ消算轰炸,我好无聊真的
    自动华键盘使用
    自动化键盘,python
    canvas中的优先级,.after最前,before最底,canvas中间,部件在布局下面
  • 原文地址:https://www.cnblogs.com/sggggr/p/9217388.html
Copyright © 2020-2023  润新知