qml从入门到放弃第二卷

AlgebraMaster AlgebraMaster     2022-08-26     554

关键词:

第二卷如何更快速的放弃,注重的是C++和QML的交互

<1>记事本。。

 

(1) 先测试下不在QML创建C++对象,仅仅在main.cpp添加一个属性函数供调用.

TextStreamLoader.h

技术分享
#ifndef TEXTSTREAMLOADER_H
#define TEXTSTREAMLOADER_H

#include <QObject>
#include <QTextStream>
#include <QDebug>
class TextStreamLoader : public QObject
{
    Q_OBJECT
public:
    explicit TextStreamLoader(QObject *parent = 0);

signals:
    void signal_readFile(QString file);
    void signal_error(QString errorMsg);
public slots:
    void slot_readFile(QString file);
    void slot_saveFile(QString file,QString buffer);
    void slot_test(){qDebug() << "test C++";}
};

#endif // TEXTSTREAMLOADER_H
View Code

TextStreamLoader.cpp

技术分享
#include "TextStreamLoader.h"
#include <QFile>
TextStreamLoader::TextStreamLoader(QObject *parent) : QObject(parent)
{
    qDebug() << "Construct the TextStreamLoader";
}

void TextStreamLoader::slot_readFile(QString file)
{
    QFile rfile(file);
    if(!rfile.open(QIODevice::ReadOnly))
    {
        QString errorMsg = "Could not open " + file + "
";
        emit signal_error(errorMsg);
        return ;
    }

    QTextStream in(&rfile);
    QString data = in.readAll();
    emit signal_readFile(data);

    rfile.close();

}

void TextStreamLoader::slot_saveFile(QString file, QString buffer)
{
    QFile wfile(file);
    if(!wfile.open(QFile::WriteOnly))
    {
        QString errorMsg = "Could not open " + file + "
";
        emit signal_error(errorMsg);
        return ;
    }

    QTextStream out(&wfile);
    out >> buffer;
    wfile.close();

}
View Code

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include "TextStreamLoader.h"
int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    QQmlContext *context = engine.rootContext();


    // 注意对象是在C++里构建
    TextStreamLoader stream_01;
    context->setContextProperty("stream_01",&stream_01);
    // 构建完C++对象


    // 加载我们的QML界面,只能调用槽函数
    qDebug() << "load the main.qml";
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    qDebug() <<engine.rootObjects()[0]->objectName();  // this will be debug "Houdini"

    return app.exec();
}

 

main.qml 用最简单的测试下我们的TextStreamLoader 里面的 "test()槽函数",一定要是槽函数才能被调用

import QtQuick 2.6
import QtQuick.Window 2.2

Window
{
    objectName: "Houdini"
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    MouseArea {
        anchors.fill: parent
        onClicked: stream_01.slot_test(); // 并没有构建对象,因为在main.cpp构建的


    }

}

 

java基础第二节(跟着我从入门到放弃咳咳。。。)

1.首先我们需要知道每一个程序有且只能有一个main方法!2.我们需要知道变量是什么,变量的基本概念如下图3.变量怎么使用呢?我们看看下图 4.然后我们需要知道就是Java语言中,变量命名要符合一定的规则!... 查看详情

观察者模式(从放弃到入门)

观察者模式(从放弃到入门)观察者模式从放弃到入门需求1错误示范需求2观察者模式认识观察者模式需求3Java中自带的观察者模式思考源码ObservableObserver解析一些体会今天分享第二个模式,观察者模式。相信作Android... 查看详情

《java从入门到放弃》文章目录

...,等相关内容都写完后,再按学习顺序来整理。《Java从入门到放弃》入门篇:XMLHttpRequest的基本用法《Java从入门到放弃》入门篇:Struts2的基本访问方《Java从入门到放弃》入门篇:Struts2的基本访 查看详情

java从入门到放弃

 (1)Java入门变量与注释 用户输入if语句java中的循环while 查看详情

深度学习:从入门到放弃

https://zhuanlan.zhihu.com/p/22976342 首发于深度学习:从入门到放弃写文章登录 FCN学习:SemanticSegmentation余俊1年前感谢@huangh12 @郑途 @麦田守望者对标签图像生成的研究和讨论,这几天研究了一下,补充如下。-------------------... 查看详情

[资源]深度学习从入门到放弃

Relationship:  MachineLearning---->DeepLearning                           ---->DeepReinforcementLearning[LearningRoadMap]              ReinforcementLearningPapers:  DeepLearningPapersReadin 查看详情

vue从入门到放弃(代码片段)

----------------------------------------------------点击这里《专栏目录》查看更多--------------------------------------------------------------------------------------------------------点击这里《专栏目录》查看更多---------------- 查看详情

vue从入门到放弃(代码片段)

----------------------------------------------------点击这里《专栏目录》查看更多--------------------------------------------------------------------------------------------------------点击这里《专栏目录》查看更多---------------- 查看详情

vue从入门到放弃(代码片段)

----------------------------------------------------点击这里《专栏目录》查看更多--------------------------------------------------------------------------------------------------------点击这里《专栏目录》查看更多---------------- 查看详情

积分从入门到放弃

这部分重新从定积分学了1,lnx的导数就是x^(-1)=1/x那么求∫(1/x)dx=ln|x|+C 2,初值问题.就是求∫f(x)dx=F(x)+C求C.  查看详情

凸优化从入门到放弃(目录)

...课程时候的笔记和心得,其中应用篇没有学习。凸优化从入门到放弃00-凸优化引言01-凸集02-凸函数(暂无)03-凸优化问题(暂无)04-对偶(暂无)05-无约束优化算法(暂无)06-等式约束优化算法(暂无)07-内点法(不等式约束优... 查看详情

kubelet从入门到放弃:拓扑管理(上)

<Kubelet从入门到放弃>系列将对Kubelet组件由基础知识到源码进行深入梳理。上一篇zouyee带各位看了CPU管理的相关内容,其中提及拓扑管理,本文将对此进行详细剖析,拓扑管理在Kubernetes1.18时提升为Beta。TopologyManager功能可实现C... 查看详情

webpack从入门到放弃之路

公司的中流砥柱要走啦!!!!我要接手这些摊子啦!!!!!硬着头皮上吧!/(ㄒoㄒ)/~~第一部分:webpack使用部分第二部分:自动化部署部分第三部分:前端视频部分tobecontinue… 查看详情

初识pytorch:从安装到入门,从入门到放弃(代码片段)

目录PyTorch安装配置安装验证PyTorchPyTorch是Facebook团队于2017年1月发布的一个深度学习框架,虽然晚于TensorFlow,也没有TensorFlow火,但目前已经与TensorFlow奇虎相当。而且PyTorch采用了Python语言的接口,可以说它才是Pytho... 查看详情

[补档][从入门到放弃]——网络流学习索引

...啊喂) 最长的博文2017-7-29大佬讲课笔记网络流——从入门到放弃没错,就是它==各种题解的索引搭配飞行员士兵占领王者之剑happiness切糕餐巾血帆海盗 查看详情

vue从入门到放弃(代码片段)

vue2.0创建项目命令:(base)goldwater@hujinshuivue%cnpminstall-gvue-cli(base)goldwater@hujinshuivue%vueinitwebpackvue2.0-demo?Projectnamevue2.0-demo#项目名称?ProjectdescriptionAVue.jsproject#项目描述?Au 查看详情

深度学习---从入门到放弃pytorch基础(代码片段)

深度学习—从入门到放弃(一)pytorchTensor类似于numpy的array,pandas的dataframe;在pytorch里的数据结构是tensor,即张量tensor简单操作1.Flattenandreshape###Originalz:tensor([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]])Flatte 查看详情

转-vue.js2.0从入门到放弃---入门实例

...net/u013182762/article/details/53021374 标签:Vue.jsVue.js2.0Vue.js入门实例Vue.js2.0教程2016-11-0314:4021431人阅读评论(9)收藏举报版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]最近,vue.js越来越火。在这样的大浪潮下,... 查看详情