函数 tr() 全名是 QObject::tr() ,被它处理的 字符串可以 使用工具提取出来翻译成其他语言, 也就是做国际化使用。

只要记住,Qt 的最佳实践:如果你想让你的程序国际化的话,那么,所有用户可见的字符串都要使用 QObject::tr() !

但是,为什么我们没有写 QObject::tr() ,而仅仅是 tr() 呢?原来,tr()函数是定义在 Object 里面的,所有使用了 \(Q\_OBJECT\) 宏的类都自动具有 tr() 函数。

在书中看到的一句话,如果想要你做的程序国际化,就把所有用户可见的字符串写到tr()中去,可直接用工具翻译成多语言的版本.

为什么有些字符串前面会有&号呢?比如像下面这样:

 openAction = new QAction(tr("&Open"), this);

为什么会出现呢?因为这是一个定义 \(action\) 的初始化字符串,“&”主要用于快捷键,就好比按下 \(alt\) 的时候我们使用的桌面程序也会有快捷键一样。

而且这个快捷键与字符串的首字母有关,首字母是什么 快捷键就是 alt+什么。

【QT】tr()的作用的更多相关文章

  1. Qt之Tab键切换焦点顺序

    简介 Qt的窗口部件按用户的习惯来处理键盘焦点.也就是说,其出发点是用户的焦点能定向到任何一个窗口,或者窗口中任何一个部件. 焦点获取方式比较多,例如:鼠标点击.Tab键切换.快捷键.鼠标滚轮等. 习 ...

  2. HTML5中常用的标签(及标签的属性和作用)

    1.标签:<!DOCTYPE>作用:声明是文档中的第一成分,位于<html>标签之前. 2.标签:<html>作用:此元素可告知浏览器其自身是一个HTML文档.属性 ...

  3. Qt 的几个核心机制总结之 布局(QWidget可以设置setSizePolicy,而QSizePolicy有Fixed,minimum,maximum,preferred,expanding,ignore等7个属性,还可以横竖分开)

    1.Qt布局的作用 Qt的布局是通过布局管理器来实现的,布局管理器负责在父类窗口部件区域构建子窗口部件,使得放置在窗体中的每个窗口部件都有一个适合的大小和位置,并且能够随着应用程序本身的变化而变化从而 ...

  4. 如何配置一个绿色化的 Qt for Windows 开发环境(有.bat脚本,亲测好用) good

    安装 QtCreator for Windows 其实是很简单的,不过,我一向讨厌什么软件都得弄个安装程序,我希望我所安装的这个 Qt 可以是绿色的.便携的,如果无法实现,至少让这个 Qt 可以在新系 ...

  5. QT qml TreeView展示数据结构于界面

    Class  QAbstractItemModel: 使用QML的TreeView类来展示树状的结构,对应的是QT的Model/View模型.这个model是一个数据模型,要为TreeView提供一个 ...

  6. linux中cut命令与tr命令

    目录 一:linux中cut命令 1.cut 命令作用 2.参数 3.参数案例解析: 二:tr命令 1.tr命令作用 2.tr命令格式 3.tr命令参数 4.案例解析: 一:linux中cut命令 1 ...

  7. sort、uniq、tr、cut、eval以及正则表达式

    sort.uniq.tr.cut.eval以及正则表达式 目录 sort.uniq.tr.cut.eval以及正则表达式 一.sort命令 1. sort的作用 2. 语法格式 3. 常用选项 4. ...

  8. HTML基础篇之知识点补充和拓展

    <tbody>标签 <tbody>如果表格内容非常多的时候,如果加上这个标签它会让这个表格全部下载好才会显示.用在表格标签上面. 如果您使用 thead.tfoot 以及 tb ...

  9. AC自动机 & Fail树 专题练习

    Fail树就是AC自动机建出来的Fail指针构成的树. [bzoj3172][xsy1713]单词 题意 给定一些单词,求每个单词在所有单词里面的出现次数. 分析 构建Fail树,记录每个单词最后一个 ...

  10. JSTL、EL、ONGL、Struts标签的区别与使用

     一.JSTL 来源 我们使用JSP开发信息展现非常方便,也可嵌入java代码用来实现相关逻辑,但同样带来了很多问题: jsp维护难度增加 出事提示不明确,不容易提示 分工不明确等 解决上面的问题可以 ...

随机推荐

  1. 阿里云轻量服务器上编译安装docker trojan时报错 fatal error: Killed signal terminated program cc1plus compilation

    轻量服务器编译安装docker trojan时报错   72%时 通过以下操作解决,和编译其他软件类似,是内存不足引起的 编译安装swoole的时候报错 fatal error: Killed sig ...

  2. 【Javaweb】servlet二

    servlet程序常见错误 1.url-pattern路径没有以 / 打头 2.servlet-name配置的值不存在 3.servlet-class标签的全类名配置错误 servlet-url地址如 ...

  3. 有序对的LCP

    求\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n} LCP(s_i, s_j)\) 方法一 \(1.\)Trie . \(2.\)求\(cnt\),\(cnt[ ...

  4. 从零玩转七牛云之CDN-qiniuyunzhicdn

    title: 从零玩转七牛云之CDN date: 2022-03-27 19:14:43.036 updated: 2022-04-10 14:13:27.322 url: https://www.y ...

  5. OpenGL纹理转换谜团:纹理写入FRAMEBUFFER后的镜像现象

    在OpenGL中,最近将一个 GL_TEXTURE_2D 纹理写入到 GL_FRAMEBUFFER ,然后从GL_FRAMEBUFFER读取为GL_TEXTURE_2D纹理后,发现GL_TEXTURE ...

  6. 用AI在本地给.NET设计几张壁纸

    AI是当今和未来非常重要的技术领域之一,它在各个行业都有广泛的应用,如医疗保健.金融.教育.制造业等.学习AI可以让你了解和掌握未来技术发展的核心,并为未来的职业发展做好准备.现在有很多开源的Mode ...

  7. 如何将没有复制或移动构造函数的对象放入vector容器

    正文 直接说答案,这个问题无法实现.原因是因为std::vector容器的插入一定会调用类对象的构造函数或者移动构造函数. 说一下为什么会有这个问题,因为不想用指针,我想直接通过类对象本身的RAII机 ...

  8. ChatGPT 同类工具推荐

    原文: https://openaigptguide.com/chatgpt-similar%20software/ ChatGPT是一款由美国OpenAI公司开发的人工智能语言模型,类似的软件有: ...

  9. 华为云分布式云原生UCS,助力MetaERP构建企业级高可用分布式业务

    本文分享自华为云社区<华为云分布式云原生UCS,助力MetaERP构建企业级高可用分布式业务>,作者:云容器大未来. 引言 华为云最近成为<Forrester Wave: Multi ...

  10. 数仓性能调优:row_number() over(p)-rn=1性能瓶颈发现和改写套路

    本文分享自华为云社区<GaussDB(DWS)性能调优:row_number() over(p)-rn=1性能瓶颈发现和改写套路>,作者:Zawami . 1.改写场景 本套路应用于子查询 ...