当前位置: 首页 > news >正文

QT中字符串加tr u8的意思

开发中遇到的问题

    • @[TOC](开发中遇到的问题)
    • tr()和u8
    • 类似的符号

在QT代码中我们经常看见tr(“string”)、u8"string" 这些符号,那这些符号是什么意思呢

tr()和u8

其实tr()是用于翻译标记用的,u8则是将字符串格式转换为utf-8格式。

tr()
tr() 是 Qt 提供的一个函数,主要用于支持国际化(i18n)。它允许你在应用程序中为文本标记以便于后续的翻译工作。当你使用 tr() 包裹一个字符串时,Qt 的工具可以识别这些字符串,并将它们提取出来以供翻译。翻译文件一般是以.ts后缀结尾,然后在资源文件中添加即可进行识别翻译

QPushButton *button = new QPushButton(tr("Click Me"), this);
QLabel *label = new QLabel(tr("Hello, World!"), this);
/*翻译文件*/
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context><name>MyWidget</name><message><location filename="mywidget.cpp" line="34"/><source>Hello, World!</source><translation>你好,世界!</translation></message><message><location filename="mywidget.cpp" line="52"/><source>Click Me</source><translation>点击我</translation></message>
</context>
</TS>

u8
u8 是 C++11 引入的一种字符编码前缀,用来指定字符串字面量应被视为 UTF-8 编码的字符串。然而,在 Qt 中,由于 QString 默认就是使用 UTF-16 编码的,所以直接使用 u8 前缀与 QString 结合并不常见,且不推荐这样做。相反,Qt 提供了其他方法来处理不同编码的字符串。

const char *utf8String = u8"这是一个UTF-8字符串";

类似的符号

QStringLiteral
在编译期创建 QString,避免运行时开销。适用于已知的静态字符串。

QString hello = QStringLiteral("Hello, world!");

qsTr()
应用于QML中,在 QML 中用于标记可翻译的字符串。

Text { text: qsTr("Hello") }

以上的话就是本文的全部内容,如果有什么错误或者建议请指正,感谢!共同进步!

http://www.dtcms.com/a/309968.html

相关文章:

  • Flink Checkpoint机制:大数据流处理的坚固护盾
  • mongodb中的哈希索引详解
  • Windows11 WSL安装Ubntu22.04,交叉编译C语言应用程序
  • Java集合框架:LinkedList
  • 【Jetson orin-nx】使用Tensorrt并发推理四个Yolo模型 (python版)
  • tensorflow目标分类:分绍(二)
  • 树莓派硬件介绍
  • 提示+掩膜+注意力=Mamba三连击,跨模态任务全面超越
  • 安检机危险品识别准确率↑23.7%:陌讯多模态融合算法实战解析
  • Python爬虫库性能与选型实战指南:从需求到落地的全链路解析
  • 神经网络的基础
  • 工业级蓝光三维扫描仪:汽车零部件高精度检测的利器
  • 研华PCI-1622C 使用RS-422通讯1主多从通讯中断
  • 【QT开发手册】对象模型(对象树) 窗⼝坐标体系
  • EXE加密软件(EXE一机一码加密大师) 最新版1.6.0更新 (附2025最新版本CSDN下载地址)
  • windows mamba-ssm环境配置指南
  • 网络层协议IP
  • 运维端口管理闭环:从暴露面测绘到自动化封禁!
  • 【AI问答记录】grafana接收query请求中未携带step参数,后端基于intervalMs和maxDataPoints等参数计算step的逻辑
  • AcWing 897:最长公共子序列 ← 子序列问题(n≤1e3)
  • “数据管理” 一场高风险的游戏
  • 民航领域数据分类分级怎么做?|《民航领域数据分类分级要求》标准解读
  • 第13届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2022年3月13日真题
  • ip去重小脚本
  • uniapp基础 (一)
  • git pull和git fetch的区别
  • Python爬虫实战:研究OpenCV技术构建图像数据处理系统
  • (转)mybatis和hibernate的 缓存区别?
  • (一)React +Ts(vite创建项目)
  • Flask 路由系统:URL 到 Python 函数的映射