Qt 不支持 Visual Studio 的 Unicode 或字体错误

2024-04-20

我是初学者,现在我正在学习 Qt 并使用 Visual Studio,扩展 Qt VS Tool 2.4.3,我使用的文本是越南语,当我构建程序时,它很好,但按钮显示特殊字符。

我已经阅读了一些有关字体错误的主题,但它与此错误无关。

我的代码:

#include <QtWidgets/QApplication>
#include <QPushButton>
#include <QLabel>

int main(int argc, char *argv[])
{
        QApplication app(argc, argv);
        QPushButton nutBam; // instance 
        nutBam.setText("Nút khẩn cấp !"); //set Text button
        nutBam.show();
        return app.exec();
}

两个问题:

  1. 在源文件中使用硬编码的 unicode 字符通常不是一个好主意。编辑器和编译器有时可以做正确的事情。编辑器可以另存为 UTF-8 或 Unicode。编译器通常可以假设读取 BOM 标头并切换编码。但团队成员和源代码存储库系统经常做错事。其他人使用了不同的编辑器、源代码控制系统等......并且 unicode 的东西变得混乱。它还会破坏差异工具。我已经看到这样的事情发生太多次了。

  2. Qt 的 QString 看到您正在将 8 位 ascii 字符串传递到 QString 构造函数中。然后他们的编码解释规则就会生效。所以使用 unicode 字符串效果会更好。

为了获得两全其美的效果,请使用 unicode 转义字符将字符串存储在源代码中,但将其作为宽字符串传递给 QString 构造函数:

I used 这个工具在线 https://dencode.com/string/unicode-escape将您的一些角色转换为\uABCD转义序列。

而不是这个:

nutBam.setText("Nút khẩn cấp !");

This:

const wchar_t* text = L"N\u00fat kh\u1ea9n c\u1ea5p !";
QString qText(text);
nutBam.setText(qText);

尽管这不再是问题,但请确保您的编辑器将源代码保存为 ANSI 或 UTF-8,而不是 16 位 unicode。

我目前没有在本地安装 Qt,但上面的内容可能会合并为这样:

nutBam.setText(L"N\u00fat kh\u1ea9n c\u1ea5p !");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 不支持 Visual Studio 的 Unicode 或字体错误 的相关文章

随机推荐

  • 将网络表单值返回至 Google 应用脚本

    我有一个谷歌表格脚本 允许用户输入某些数据 当用户单击 确定 时 我希望能够将这些值传递回谷歌应用程序脚本中的函数 这是我试图开始工作的 Google 表格脚本 函数 checkLogin 确实会被调用 直到我尝试从网页将值传递给它 剧本
  • 如何监控`preStop`命令的执行?

    我正在尝试使用 pod 的生命周期事件 问题是来自的命令preStop根本不运行 有什么办法可以监控它是否已启动吗 容器的日志为空 lifecycle preStop exec command bin sh c clean sh 我只想添加
  • 矩阵到 JTable

    我需要用静态二维数组填充 JTable 我创建了这个模型JTable public class InsertMatToJTable extends AbstractTableModel String titre age real sex r
  • 如何随机选择三个字符串之一?

    我必须创建一个密码 我相信我可以做到 但是我一开始就被难住了 我有3个字符串 我想随机选择这三个字符串之一 有人知道该怎么做吗 Dim sLowerCase As String qwertyuiopasdfghjklzxcvbnm Dim
  • 将文件拖放到 SharePoint Web 部件中以上传到 DocLibrary

    是否可以创建一个 SharePoint wss3 或 MOSS 2007 Web 部件 以允许将文件拖放到其上 然后将文件上传到预定义的文档库中 我想这需要某种形式的客户端脚本 Ajax 但我对 ajax 的了解有点粗略 从迄今为止的探索来
  • 已使用的 Objective-C 前缀列表

    我正在为我正在编写的库选择一个命名空间 并且希望避免与其他命名空间发生冲突 有谁知道有一个网站列出了所有正在使用的类前缀 https cocoadev github io ChooseYourOwnPrefix https cocoadev
  • FFMPEG 没有按预期“切割”

    我通过一个简单的 system process 使用 FFMPEG 来自 java 应用程序 并尝试将视频切成块 我正在尝试将其切成 10 秒的增量 我的 FFMPEG 命令如下所示 ffmpeg i SampleVideo mp4 ss
  • 在 Android BLE 中处理指示而不是通知

    使用蓝牙 SIG 应用加速器代码 它很好地演示了蓝牙低功耗的不同概念 然而 它没有提到与通知相反的指示 我知道与通知不同 需要确认指示 并且在代码中我会这样做byte val enabled BluetoothGattDescriptor
  • XMLHttpRequest:网络错误 0x80070005,在 Microsoft Edge(但不是 IE)上访问被拒绝

    我有一个非常简单的 ajax 请求 见下文 服务器正在使用 CORS 并且在 IE 10 Chrome Firefox 和 Opera 中运行良好 On 微软边缘但是 它失败了 XMLHttpRequest 网络错误 0x80070005
  • Linux 中 POSIX 可靠信号和 POSIX 实时信号有什么区别?

    我读了一个手册页signal using 男人7信号 http man7 org linux man pages man7 signal 7 html我看到两种类型的信号 所以 我有一个问题 有什么区别POSIX 可靠信号 and POSI
  • 单个 DLL V 多个 DLL

    前段时间我在这里问了一个问题 当时我想知道是否最好将一个大项目 NET 类库 拆分为多个 NET DLL 建议使用一个大的 DLL 该 DLL 现在已在另一个项目中使用 另一个项目只使用了几个类 因此项目中有很多类未使用 从体系结构的角度来
  • 你能在条件表达式中添加条件表达式吗? (是:边界检查如何扩展到多个维度?)

    Note 我通过实现一个完全不同的问题来解决最初的问题 有关新的实际问题 请参阅附录 但您可以阅读前一部分以了解上下文 这是我的一个的扩展以前的帖子 https stackoverflow com q 10171525 1010226 我根
  • Webpack 用于后端?

    我只是想知道 我开始在一个新项目中使用 Webpack 到目前为止它运行良好 我几乎可以说我比我之前用过的 Grunt 更喜欢它 但现在我很困惑如何和 或应该将它与我的 Express 后端一起使用 看 我正在创建一个具有前端 ReactJ
  • 如何实现“ui-sref”有条件执行?

    我想在浏览器遵循 ui router 动态创建的链接之前验证某些条件 我正在调查 rootscope on stateChangeStart 但我无法访问controller scope从那里 我还需要在应用程序的几个地方使用它 这会很麻烦
  • 无法使 ExposeDropdownMenu 与 OutlinedTextField 宽度相同

    我遇到以下问题 下拉菜单项的宽度与 OutlinedTextField 的宽度不同 寻找解决方案 发现以下内容 添加要保留的变量textField width var textFieldSize by remember mutableSta
  • NoClassDefFound ShortTypeHandling 与 gradle 自定义插件使用

    我写了一些常规代码 使用编译compile localGroovy 并将 jar 发布到artificialy 现在我写了一个gradle插件 其中有compile localGroovy and compile gav of jar ab
  • 为什么我不能将 Clojure 的 :^const 与 Java 字节数组一起使用?

    Using lein repl使用 Clojure 1 4 0 我可以定义一个 constJava 字节数组的 但我不能用它做任何事情 user gt def x byte array map byte 0 1 2 3 user x use
  • React.js 错误“相邻 JSX 元素必须包含在封闭标记中”

    我有下面的代码是react js 它抛出一个错误 相邻的 JSX 元素必须包含在封闭标签中 看起来 React 不接受彼此相邻的相同标签 如何显示表格数据 var TestRecords React createClass render f
  • SetThreadName 不适用于 Visual Studio 2005

    设置线程名称 http msdn microsoft com en us library xcb2z8hs 28v VS 71 29 aspx当使用 Visual Studio 2005 时 不会设置线程名称 如下所示 DWORD thre
  • Qt 不支持 Visual Studio 的 Unicode 或字体错误

    我是初学者 现在我正在学习 Qt 并使用 Visual Studio 扩展 Qt VS Tool 2 4 3 我使用的文本是越南语 当我构建程序时 它很好 但按钮显示特殊字符 我已经阅读了一些有关字体错误的主题 但它与此错误无关 我的代码