QML编码约定

news2024/11/17 13:52:43

QML中的国际化:

QML使用以下函数来将字符串标记为可翻译的

  1. qsTr()
  2. qsTranslate()
  3. qsTrld()
  4. QT_TR_NOOP()
  5. QT_TRANSLATE_NOOP()
  6. QT_TRID_NOOP

最常用的还是qsTr()

string qsTr(string sourceText, string disambiguation, int n) 

  • 返回 sourceText 的翻译版本,可以选择基于消除歧义字符串和包含复数的字符串的值 n ;否则,如果没有合适的翻译字符串可用,则返回 sourceText 本身。

    如果在同一翻译上下文中以不同的角色使用相同的 sourceText,则可能会传入额外的标识字符串以消除歧义

1.正常使用: 

Text {
        id: text1
        text: qsTr("text")
    }

 2.消除歧义:

当两个词语有相近的意思时,使用qsTr()的第二个参数来区分相同的文本 

Text {
    id: txt1;
    text: qsTr("Back", "not front");//将Back和 not front区分
}

3.使用arg()

Text {
        id: text1
        text: qsTr("%1,%2").arg(1).arg(2);
    }

4.使用%lx使数字本地化

可能国家和国家之间的表式方法不一样,可以使用%lx来使数字本地化

Text {
    text: qsTr("%L1").arg(total)
}

如果是数字“4321.56”(四千三百二十一点五十六);使用英语区域设置(区域设置)时,输出为“4,321.56”;使用德语区域设置时,输出为“4.321,56”。

5.国际化日期、时间和货币

Qt.locale返回一个Locale 对象,其中包含有关区域设置的各种信息。特别是,Locale.name 属性包含当前区域设置的语言和国家/地区信息。可以按原样使用该值,也可以分析该值以确定当前区域设置的相应内容。

  • 使用Date()获取当前时间

获取本地化的时间和日期:

Text {
        id: text1
        text: qsTr("Data:%1").arg(Date().toLocaleString(Qt.locale()))
    }

 

 QML编码规定:

 QMl对象属性构建顺序:

  1. id
  2. 属性声明
  3. 信号声明
  4. JavaScript
  5. 对象属性
  6. 子对象
  7. 状态
  8. 状态切换
Rectangle {
    id: photo                                               // id on the first line makes 

    property bool thumbnail: false                          // property declarations
    property alias image: photoImage.source

    signal clicked                                          // signal declarations

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

    color: "gray"                                           // object properties
    x: 20                                                   // try to group related properties together
    y: 20
    height: 150
    width: {                                                // large bindings
        if (photoImage.width > 200) {
            photoImage.width;
        } else {
            200;
        }
    }

    Rectangle {                                             // child objects
        id: border
        anchors.centerIn: parent; color: "white"

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

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

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

分组属性:

一些相同元素的属性可以进行合并 

Text{
        font.bold: true
        font.family: "黑体"
        font.pixelSize: 20
        font.underline: true
    }

 可以合并为:

Text{
    font{ bold: true;underline: true;pixelSize: 20;family: "黑体" }
    }

私有属性:

QML和JavaScript中并没有C++中强制私有属性,但需要隐藏那些私有属性的话,使用__开头

Rectangle{
        id:rect1
        property real __peo: width+hieght//使用__开头
        width: 100
        height: 100
    }

JavaScript代码:

  1. 少量代码的话,直接内联
  2. 一个函数的话,把函数放到外部声明
  3. 多个函数的话,使用文件的方式存储再调用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/389284.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux- 系统随你玩之--文件管理-双生姐妹花

文章目录1、前言2、文件管理-双生姐妹花2.1、 df2.1.1、 df 语法2.1.1 、常用参数2.2、 du2.2.1、du 语法2.1.1、 常用参数2.3、双生姐妹花区别2.3.1、 查看文件统计 的计算方式不同2.3.2 、删除文件情况下统计结果 不同2.3.3 、针对双生姐妹花区别 结语3、双生姐妹花实操3.1 、…

[2019红帽杯]childRE

题目下载:下载 参考:re学习笔记(24)BUUCTF-re-[2019红帽杯]childRE_Forgo7ten的博客-CSDN博客 这道题涉及到c函数的修饰规则,按照规则来看应该是比较容易理解的。上面博客中有总结规则,可以学习一下。 载…

不同的网络分层模型与其常见的协议和硬件

文章目录一、网络分层模型1.1 OSI七层参考模型1.2 TCP/IP分层模型1.3 数据的分层传输二、网络通信媒介和数据链路2.1 网卡2.2 中继器Repeater2.3 集线器交换机(二层设备) 比集线器升级了什么二层交换机和三层交换机说明:该博客粗略整理了下不同的网络模型&#xff0…

Vue3之组件间传值避坑指南

组件间传值的两个坑 我们都知道父组件可以把值传递到自组件中,但是有时候子组件需要修改这个父组件传递过来的这个值,我们可以想象下能修改成功吗?这是坑之一。我们在组件间传值的时候,都是一个属性名对应一个值,接收…

泛函分析导论

它的基本思想是将函数看作向量,从而将函数空间转化为向量空间,进而研究函数空间的性质。泛函分析的主要内容包括:线性空间、内积空间、赋范空间、希尔伯特空间、算子理论、谱理论、函数空间等。空间与算子度量空间赋范空间和巴拿赫空间线性算…

Mybatis插件开发及执行原理

mybatis源码下载 https://github.com/mybatis/mybatis-3,本文分析源码版本3.4.5 mybatis启动大致流程 在看这篇文章前,建议查看我另一篇文章,以了解框架启动的流程和框架中一些重要对象:https://blog.csdn.net/Aqu415/article/…

com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.channel.AbstractChannel

一 完成的错误信息 异常Message one Caused by: com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information 异常Message two [com.alibaba.nacos.client.remote.worker] ERROR…

K8S 实用工具之二 - 终端 UI K9S

开篇 📜 引言: 磨刀不误砍柴工工欲善其事必先利其器 第一篇:《K8S 实用工具之一 - 如何合并多个 kubeconfig?》 像我这种,kubectl 用的不是非常溜,经常会碰到以下情况: 忘记命令,先…

基于粒子群改进的支持向量机SVM的情感分类识别,pso-svm情感分类识别

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 SVM应用实例,基于SVM的情感分类预测 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型…

【C++修炼之路】25.哈希应用--布隆过滤器

每一个不曾起舞的日子都是对生命的辜负 布隆过滤器前言一.布隆过滤器提出二.布隆过滤器概念三. 布隆过滤器的操作3.1 布隆过滤器的插入3.2 布隆过滤器的查找3.3 布隆过滤器的删除四.布隆过滤器的代码4.1 HashFunc的仿函数参考4.2 BloomFilter.h五.布隆过滤器的优缺点六.布隆过滤…

Spring——Bean管理-xml方式进行属性注入

目录 一、xml方式创建对象 二、xml方式注入属性 第①种方式注入:set方法注入 第②种方式注入:有参构造函数注入 constructor-arg:通过构造函数注入 用name标签属性: 不按照顺序也会自动匹配 使用index标签属性:…

使用Struts的论坛系统的设计与实现

技术:Java、JSP等摘要:随着互联网的高速发展,目前可通过论坛系统可随时取得国际最新的软件及信息,也可以通过论坛系统来和别人讨论计算机软件、硬件、多媒体、程序设计、以及影视等等各种有趣的话题。本系统按照小型公司的实际要求…

第三讲:ambari编译后的安装包制作流程说明

一、概述 前两讲,我们已经将 Ambari 源码编译成功。现在我们想将 Ambari 编译后的 rpm 包,都放到 yum 本地仓库中,这样 Ambari 与 HDP 在安装部署时,就直接使用的我们自己编译的安装包了。 Ambari 的 rpm 包,有这么几类: ambari-server rpmambari-agent rpmambari metr…

React.memo 解决函数组件重复渲染

为什么会存在重复渲染? react 在 v16.8 版本引入了全新的 api,叫做 React Hooks,它的使用与以往基于 class component 的组件用法非常的不一样,不再是基于类,而是基于函数进行页面的渲染,我们把它又称为 functional c…

id函数 / 可变类型变量 / 不可变类型变量 / +=操作

前言 再说正文之前,需要大家先了解一下对象,指针和引用的含义,不懂得同学可以参考我上一篇博客“(12条消息) 引用是否有地址的讨论的_xx_xjm的博客-CSDN博客” 正文 一:python中一切皆对象 “python中一切皆对象”这句话我相信…

【LeetCode】剑指 Offer(15)

目录 题目:剑指 Offer 32 - II. 从上到下打印二叉树 II - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 32 - III. 从上到下打…

分子模拟—Ovito渲染案例教程

♡\heartsuit♡♠\spadesuit♠《分子模拟—Ovito渲染案例教程》♡\heartsuit♡♠\spadesuit♠: 说明: 本博文主要介绍专栏 《分子模拟—Ovito渲染案例教程》\rm 《分子模拟—Ovito渲染案例教程》《分子模拟—Ovito渲染案例教程》, 依托于实际的物理问题…

高数:数列的收敛

数列特点无限个数特定顺序数列和集合区别集合可以乱序,数列不行集合出现重复元素依然相同,数列出现新的重复元素就不相等[1,2,3,4][1,2,3,3,4]对集合来说相等&#xff0c…

【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上)

系列文章目录 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上) 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(中) 文章目录系列文章目录前言一、数据库配置信息二、下载OGG1…