Qt 5.9 QML 编码规范

QtCreator新手必看:从安装到跑通第一个QML程序的全流程演示 本文详细介绍了QtCreator从安装到运行第一个QML程序的全流程,包括开发环境部署、核心工作区功能、QML项目创建及调试技巧。特别针对新手常见问题提供解决方案,帮助开发者快速掌握QtCreator的使用,提升开发效率。 阅读详情

Qt 5.9 QML 编码规范

目录:

  • QML对象声明
  • 分组特性
  • 列表
  • JavaScript代码

QML对象声明

纵观我们的文档以及例子,QML对象属性用以下的顺序进行构造:
- id
- 属性声明
- 信号声明
- javaScript函数
- 对象属性
- 子对象
- 状态
- 转换

为了更好的阅读体验,我们通过使用空格来分开这些不同的部分。
例如,一个假定的图片QML对象就像是这样:

Rectangle{
    id: photo                                               // id放在首行以便于更容易去找到对象

    property bool thumbnail: false                          // 属性声明
    property alias image: photoImage.source

    signal clicked                                          // 信号声明

    function doSomething(x)                                 // javascript函数
    {
        return x + photoImage.width
    }

    color: "gray"                                           // 对象属性值
    x: 20; y: 20; height: 150                               // 尝试去把相近的属性值分组到一起
    width: {                                                // 大块属性绑定
        if (photoImage.width > 200) {
            photoImage.width;
        } else {
            200;
        }
    }

    Rectangle {                                             // 子对象
        id: border
        anchors.centerIn: parent; color: "white"

        Image { id: photoImage; anchors.centerIn: parent }
    }

    states: State {                                         // 状态
        name: "selected"
        PropertyChanges { target: border; color: "red" }
    }

    transitions: Transition {                               // 转换
        from: ""; to: "selected"
        ColorAnimation { target: border; duration: 200 }
    }
}

分组特性

如果从一组属性值中使用多重的属性值,如果能够提高可读性,应该去使用分组符号来代替分号,。

例如:

Rectangle {
    anchors.left: parent.left; anchors.top: parent.top; anchors.right: parent.right; anchors.leftMargin: 20
}

Text {
    text: "hello"
    font.bold: true; font.italic: true; font.pixelSize: 20; font.capitalization: Font.AllUppercase
}

应该写成这样:

Rectangle {
    anchors { left: parent.left; top: parent.top; right: parent.right; leftMargin: 20 }
}

Text {
    text: "hello"
    font { bold: true; italic: true; pixelSize: 20; capitalization: Font.AllUppercase }
}

列表

如果一个列表只包含一个元素,我们总是省略方括号。
例如,对于一个组件来说,只有一个状态是非常常见的。
在这样的情况下,取代:


states: [
    State {
        name: "open"
        PropertyChanges { target: container; width: 200 }
    }
]

我们可以写成这样:


states: State {
    name: "open"
    PropertyChanges { target: container; width: 200 }
}

JavaScript代码

如果脚本是一个单一表达式,我们推荐这样书写它


Rectangle { color: "blue"; width: parent.width / 3 }

如果这个脚本只有两三行的长度,我们总是使用一个语句块:


Rectangle {
    color: "blue"
    width: {
        var w = parent.width / 3
        console.debug(w)
        return w
    }
}

如果这个脚本有超过两行的长度或者被不同的对象使用,我们推荐创建一个函数并调用它用以下的方法:


function calculateWidth(object)
{
    var w = object.width / 3
    // more javascript code
    // ...
    console.debug(w)
    return w
}

Rectangle { color: "blue"; width: calculateWidth(parent) }

对于长的脚本,我们将会放置函数在他们各自的JavaScript文件中并将其导入,如下所示:


import "myscript.js" as Script

Rectangle { color: "blue"; width: Script.calculateWidth(parent) }

如果代码的长度超过了一行并且因此使用了一个语句块,我们使用分号去表示每个语句的结束:


MouseArea {
    anchors.fill: parent
    onClicked: {
    var scenePos = mapToItem(null, mouseX, mouseY);
    console.log("MouseArea was clicked at scene pos " + scenePos);
    }
}

IDE /Qt Creator 文件编码配置:从乱码到兼容的实战解析 本文详细解析了Qt Creator中文件编码配置的常见问题及解决方案,特别是针对中文注释乱码和MSVC编译器兼容性问题。通过实战案例,介绍了如何配置GB2312编码、处理已有文件转换以及特殊文件类型的编码管理技巧,帮助开发者有效避免编码问题,提升开发效率。 阅读详情

相关推荐

Qt单元测试演示qt单元测试demo_基于qt5单元测试工程例子qt5单元测试例子

//qt单元测试用法,qt测试例子,qt单元测试demo,qt单元测试简单例子,qt单元测试例程,qt单元测试简单例子, qt5单元测试例子,qt5单元测试代码,qt5单元测试工程例子,测试运行ok //首先,用标准的qt测试单元导向,建立一个变准的qt单元测试程序框架,建立话好,能编译通过并且执行的。 float tst_untitledtest::calculate_area_of_circle(float r)//计算圆的面积的函数 { return r*r*3.1415926; } void tst_untitledtest::testA() { QFETCH(float,inputR);//QFETCH用户获取testA_data的数据,inputR是浮点型的。 QFETCH(float,resltArea);//resltArea是浮点型的,这两个参数都是在testA_data里面定义的 //QCOMPARE(input,rslt); QCOMPARE(calculate_area_of_circle(inputR), resltArea);//测试结果比较,用宏QCOMPARE。可以直接调用inputR和resltArea。 qDebug()<<"============test ok=============="; } void tst_untitledtest::testA_data() { QTest::addColumn ("inputR");//定义测试数据,添加测试数据,添加一列,此列是输入 QTest::addColumn ("resltArea");//定义测试数据,添加测试数据,添加测试数据,定义一列,是结果 QTest::newRow("a")<<1.0f<<3.14159f;//添加一行测试数据,每行就是每一次测试,对应上面定义的input和result QTest::newRow("b")<<2.0f<<5.0f;//添加一行测试数据,每行就是每一次测试,对应上面定义的input和result QTest::newRow("c")<<3.0f<<6.0f;//添加一行测试数据,每行就是每一次测试,对应上面定义的input和result,所以这是3次第是,3 row } /** ——————————— | inputR | resultArea| __________________________ | a | 1.0f | 5.0f | __________________________ | b | 2.0f | 5.0f | __________________________ | c | 3.0f | 6.0f | -------------------------- **/ 运行结果: ********* Start testing of tst_untitledtest ********* Config: Using QtTest library 5.5.1, Qt 5.5.1 (x86_64-little_endian-llp64 shared (dynamic) debug build; by MSVC 2013) PASS : tst_untitledtest::initTestCase() QDEBUG : tst_untitledtest::testA(a) ============test ok============== PASS : tst_untitledtest::testA(a) FAIL! : tst_untitledtest::testA(b) Compared floats are not the same (fuzzy compare) Actual (calculate_area_of_circle(inputR)): 12.5664 Expected (resltArea) : 5 tst_tst_untitledtest.cpp(36) : failure location FAIL! : tst_untitledtest::testA(c) Compared floats are not the same (fuzzy compare) Actual (calculate_area_of_circle(inputR)): 28.2743 Expected (resltArea) : 6 tst_tst_untitledtest.cpp(36) : failure location PASS : tst_untitledtest::cleanupTestCase() Totals: 3 passed, 2 failed, 0 skipped, 0 blacklisted ********* Finished testing of tst_untitledtest *********

【C++】Qt:QML介绍与入门示例

QML介绍与入门案例

DevFrank的博客 1096

QML中文教程及初学者入门

本资源是用于QML初学者进门的,里面的内容让新手更易懂。

Qml小例子

ApplicationWindow import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.5 import QtQuick.Controls 1.4 as Ctr1 import QtQuick.Layouts 1.2 import './Text.js' as Jie ApplicationWindow{ id:window width:640 height:480 visib.

lu750310的博客 866

Qt/QML 翻转效果实例

主要代码QML,GridView创建的列表,在移动过程中实现代理的半翻转效果,翻转角度可根据自己需要调整;闲来无事做个效果看看,谢谢大家赏识

Qt QML/C++实现计算器

使用Qt框架中的QML和C++实现计算器,对于QML/C++混合编程初学者有一个良好的实例学习和巩固

QMl编程知识——QML元素布局详解

在Qt Quick中,QML(Qt Modeling Language)提供了一种灵活且强大的方式来构建用户界面。其中,锚布局(Anchors)是QML中一种非常重要的布局方式,它允许我们通过指定元素与其他元素之间的关系来确定元素在界面中的位置。除了锚布局(Anchors)之外,还有多种常用的布局方式(Row/行布局、Column/列布局、Grid/网格布局、Flow/流布局),这些布局方式可以根据不同的需求和场景来选择使用。本文将详细介绍QML布局的基本概念、使用方法和一些实际案例。

J^T的博客 3821

上机笔试题目:取出指定条件二维数组的子数组

取出指定条件二维数组的子数组: 1)传入参数为: 参数一:String[][]sArray2字符串二维数组 参数二:Stringkey字符串 参数三:StringkeyFormat含匹配符的字符串,如下:%0-%1,其中%x含义如为:一维数据列序号为x的值。 keyFormat 可以为 %0-%1-%2,%0-%3-%8-%x...... 例子如下...

91奔跑的蜗牛 636

qml代码规范

1.开头  import Qt 4.7  import声明是为了导入包含所有标准的QML元素的Qt模块。2.对象和属性  QML中,对象是通过对象类型后跟一对花括号来定义的,在花括号中是对这个对象的信息描述,例如它的属性.属性是通过 property:value的形式来说明的,其中属性和值以冒号隔开。每个对象都有一个唯一的id属性,通过这个id属性便可以找到具体的对象,进行相关操作。基本的属性包括 int, real, bool, string, color和lists。属性命名:通 常以小写字符开头(附加

闪饕 2782

TPS563201DDCR电路翻车实录:从原理图到PCB,我踩过的5个坑及补救方法

本文详细记录了使用TPS563201DDCR电源芯片设计电路时遇到的5个常见问题及解决方案,包括EN引脚配置、BST电容选型、反馈网络设计、PCB布局优化以及散热处理。通过实际案例和数据分析,帮助工程师避免类似错误,提升电源模块的可靠性和效率。

weixin_42532938的博客 528

408计算机复试专业课问答汇总

408计算机复试专业课问答汇总

weixin_45930223的博客 3698

QML-项目实战一

使用QML创建一个简单的登录界面,代码内容来源于bilibili中的视频。

m0_58233509的博客 2174

基本模型 PINNs : Physics Informed Neural Networks

系列最开始当然要提到很经典的文章 —— Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations 。 这篇文章是布朗大学的助理教授Maziar Rais...

waitingwinter的博客 3万+

QML学习笔记总结

这个博客是我记录我自学Qt5 的QML语言的时候一些总结和个人理解概述,也是这个专栏的置顶文章,主要的帮助链接基本在这个专栏内部,主要的参考资料就是Qt 官方的帮助文档,这个官方的帮助文档相当详细,总的来说,QML 学习的成本不大,学习入门也很简单,语法也很清晰,QML真的更加快速的描述这个界面相关的构建方法。这个博客也会持续更新,也作为学习阶段性总结的一个监督方式吧。

洪源兄 1万+

别再死磕SPWM了!手把手教你用STM32实现SVPWM驱动PMSM电机(附代码)

本文详细介绍了如何使用STM32实现SVPWM驱动PMSM电机,对比传统SPWM方案,SVPWM在电压利用率、电流THD、转矩脉动和稳态温升等方面均有显著提升。通过克拉克变换优化、扇区快速判断和矢量作用时间补偿等核心算法,结合STM32硬件加速技巧,实现高效电机控制。附代码示例,助力开发者快速掌握SVPWM技术。

weixin_28733777的博客 273

UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount()【已解决】

UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount()【已解决】

围炉夜敲的博客 1万+

QT QML Lesson5:仿界面开发之QML SplitView

目的 1 掌握QML SplitView 对窗口进行布局 2 逐步仿制以下界面 主要内容 明白SplitView类型的主要属性 掌握QML的编码规范 项目源码 https://gitee.com/lxmuyu/QML_Lesson.git...

lxmuyu的专栏 3253

配置Dot1q终结子接口实现跨设备VLAN间通信示例

示例图 一.实验目的 1.配置Dot1q终结子接口实现跨设备VLAN间通信示例 二.注意事项 1.Dot1q终结子接口和QinQ终结子接口不支持透传不带VLAN Tag的报文, 收到不带VLAN Tag的报文会直接丢弃 2.由于三层以太网子接口不支持VLAN报文,当它收到VLAN报文时,会将VLAN报文当成是 非法报文而丢弃,因此,需要在子接口上将VLAN Tag剥掉,也就是需要VLAN终结 三.VLAN终结简介 1.VLAN终结的实质包含两个方面: ①.对接口接收到报文,剥除VLAN标

qq_44751470的博客 7097

QT开源网站和相关资料

QT和QtCreator介绍 相比较微软的MFC,Qt是一个跨平台应用程序和 UI 开发框架。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。记得之前在上海的一家公司里开发的手机助手类的程序就是采用QT开发的,分别针对Windows和Mac开发手机助手,第一个版本基于QML,第二个版本采用QT C++方式。Qt Creator 是全...

ccf19881030的专栏 6586

一种白平衡增益计算中白点权重计算简易实现方式

一种白平衡白点距离权重简易实现方式

大熊 384

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

dsh-purge 怎么装:给官方 DeepSeek Harness 打补丁,10 分钟验收通过

dsh-purge 是装在本机官方 DeepSeek Harness 上的红队评测插件。它把模型自己的行为与宿主拦截分开,让你做受控评测时能分清「模型拒绝」还是「宿主拦截」。整条安装路径约 10 分钟,全程可逆。 | 一句话定位 | 适合谁 | 耗时 | 硬性前置 | 可否回滚 | |---|---|---|---|---| | 给官方 DeepSeek Harness 打补丁,分离模型行为与宿

gitblog_00246的博客 211

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Quick--简介

Quick--简介1 简介1.1 QML1.2 Quick2 优缺点2.1 优点2.2 缺点3 基本语法3.1 导入语句3.2 类型(QML Types)3.3 对象3.4 属性3.5 注释参考 1 简介 1.1 QML QML(Qt Meta-Object Language,Qt元对象语言)是一种用于描述应用程序用户界面的声明式编程语言。它使用一些可视组件,通过这些组件之间的交互来描述用户界面...

天道酬勤 2235

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Qt知识总结归类

Qt知识:对qt的知识做了总结和归类,详情请查看链接qt官网网址。 一.编码规范 Qt c++编码规范 Coding Style: https://wiki.qt.io/Qt_Coding_Style Coding Converntions:https://wiki.qt.io/Coding_Conventions Qt qml编码规范: https://doc.qt.io/qt-5/qml-codingconventions.html 二.综述 Qt 目录页面: https://doc.qt.

zet的博客 457

qt编码规范

一.概述 良好的编程规范可以大幅提高一个程序的可读性、可理解性和可维护性。 本规范参考Effective C++中文版、Google C++编码规范及Qt编码风格。 二.头文件 1)#define保护 所有头文件都应该使用#define防止头文件被多重包含,命名格式为:__H,例如: #ifndef MAP_MAINWINDOW_H #define MAP_MAINWIN

cqltbe131421的博客 713

Qt for MCUs 2.11 LTS与Qt 5.15.19发布:ESP32-S3/RA8D1支持与地图渲染解析

嵌入式GUI开发中,MCU资源受限与图形渲染效率是核心挑战。Qt for MCUs通过精简运行时与硬件加速适配,在裸机与RTOS上实现流畅界面。2.11 LTS版本新增ESP32-S3和RA8D1芯片支持,并引入MCU地图渲染能力,结合2D加速器与Helium指令集,提升车载仪表、工业HMI等场景的交互体验。同时,Qt 5.15.19作为Qt 5最终版,为老项目提供安全修复与迁移窗口。本文深入拆解MCU图形开发的技术路径与性能调优实践。

weixin_34357928的博客 696

Qt Creator 源码学习 02:qtcreator.pro

1、qtcreator项目文件 当我们准备好 Qt Creator 的源代码之后,首先进入到它的目录,来看一下它的源代码目录有什么奥秘。 这里一共有 9 个文件夹和 9 个文件。我们来一一看看它们都是干什么用的。 .git: 版本控制 git 的隐藏目录,这与 Qt Creator 代码没有关系。 bin: 生成 Linux 平台 shell 脚本。 dist: 安装文件配置信息和版本更新记录。 doc: 生成 doxygen 文档的配置文件。 qbs: QBS 配置文件。QBS,即

weixin_42887343的博客 2018
上一篇: 在linux下编译cpp文件出现错误
下一篇: QDir中mkdir和mkpath的区别
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值