Qt

您所在的位置:网站首页 回车键英文 Qt

Qt

2023-10-15 11:10| 来源: 网络整理| 查看: 265

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加

提示:

文章目录 系列文章目录前言环境问题解决1、简单粗暴——直接在Linguist的翻译里按下“Enter”回车键2、绕远路——改代码 总结

前言

有天饭后决定更新一下翻译代码,主要是tr()部分的翻译,没想到,tr(“English\r\nEnglish”) 显示正常,如下: “英文 英文” 而用linguist.exe翻译成中文 “英文\r\n英文”,显示错误: “英文\r\n英文” 在网上搜,查看相关资料,一直找不到任何能提供解决办法的文章,而第二天突然解决了这个问题,所以在此,由我提供一个思路。

环境 开发环境 Windows10 操作系统 Qt 5.15.2 C++GUI框架 Desktop Qt 5.15.2 MinGW 64-bit 编译器 qmake 构建系统 Qt Creator 8.0.0 编辑器 问题

代码如下:

QMessageBox::critical(this, tr("Error Warning"), tr("Opening failed!!!\r\nThe serial port may be occupied.\r\nOr, the device is not enabled.\r\nPlease check the device!!!"));

显示英文时: 在这里插入图片描述 显示中文时: 在这里插入图片描述 在这里插入图片描述 如上图对比可得: 无论使用哪种符号“\r\n”、“\n\r”、“\n”,都会被识别成“字符串”,所以,在Linguist语言家中,翻译部分加上“回车符、换行符”是无效的。

解决 1、简单粗暴——直接在Linguist的翻译里按下“Enter”回车键

我将“\r\n”选中,按下“Enter”回车键,Linguist自动识别,显示成程序独有的“回车”图标(即,回车符号)。 请添加图片描述 请添加图片描述

2、绕远路——改代码

代码如下:

QMessageBox::critical(this, tr("Error Warning"), tr("Opening failed!!!\r\nThe serial port may be occupied.\r\nOr, the device is not enabled.\r\nPlease check the device!!!")); || || 改 || \||/ QMessageBox::critical(this, tr("Error Warning"), tr("Opening failed!!!") + "\r\n" + tr("The serial port may be occupied.") + "\r\n" + tr("Or, the device is not enabled.") + "\r\n" + tr("Please check the device!!!"));

把一个“tr()”改成多个“tr()”,让“\r\n”不干扰翻译。

总结

1、不要把问题复杂化,先用最简单的方法解决,不行再想想,绕远路也能实现的话,亦可。

特别是 对有工作的人来说,时间很宝贵,为了不加班,需要紧急完成工作任务,所以其工作重心不可偏,否则后果不堪设想; 另外,研究是否有其他好的解决方案,则需要业余时间去做,而不是占用工作时间,这是每个作为工具人/社畜该有的自觉,除非你有大把时间不着急,那你当我在这说废话。

2、tr()自动识别“\r\n”符,但是利用Linguist工具,则需要直接按“Enter”回车键,由工具自动处理“回车”符。

这涉及tr()的翻译机制,翻译部分的回车并不是由tr()直接处理的,而是通过什么,我没有细究,若有新的思路,将在这进行补充。

3、这跟编码“QApplication::UnicodeUTF8等”、改用“QObject::trUtf8()、QApplication::translate()”都无关(不治标更不治本)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3