简 述: 创建的 Qt QKeySequenceEdit 快捷键编辑框,显示方块■◆乱码。
[TOC]
本文初发于 “偕臧的小站“,同步转载于此。
分析
💻 win10 21H2
📎 Qt 5.12.11
📎 Visual Studio 2019
产生口字的方块乱码原因,通常是以 UTF-8 方式读取 GBK 编码的中文。对于此类编码问题,我早已没有问题。故,且再次检验过所有编码相关,根本不是我的原因:很明显,是 new QKeySequenceEdit()
出现了问题。
PS: 如果不懂乱码原因和如何解决,请参考如下 QtExamples 的第六部分章节,摘取其中两篇:极简和根因探究
解决
最后发现是因为混用了,导致的
new QKeySequence(Qt::CTRL + Qt::Key_Shift + Qt::Key_Y) // error 混用了
正确的用法,参考 Qt Assistant
QKeySequence(QKeySequence::Print);
QKeySequence(tr("Ctrl+P")); // "+" 的左右不能有 "空格"
QKeySequence(tr("Ctrl+p"));
QKeySequence(Qt::CTRL + Qt::Key_P);