Qt-使用QString输出数字上标(不要再用x2或x^2表示平方啦)
Posted 翟天保Steven
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt-使用QString输出数字上标(不要再用x2或x^2表示平方啦)相关的知识,希望对你有一定的参考价值。
作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
场景需求
数学与我们的工作生活息息相关,平方、次方的概念,也经常出现在我们的工作中。为了更好地展示数学公式中的次方,word、wps有了公式编辑器,通过公式编辑器可以写出漂亮的数学公式,在csdn中编辑文章,同样也支持公式编辑器,这给广大创作者提供了巨大的便利。
然而在编程中,次方作为一种数字上标,想要以字符形式展示出来,就没有那么方便了。一些常用的字符如数字、大小写字母等,是可以通过ASCII码直接输出的,而数字上标这种特殊的符号,则可以通过Unicode表示。
Unicode是为了解决传统字符编码的局限性而产生,为每种语言中每个字符设定了统一且唯一的二进制编码,且满足跨语言、跨平台的文本转换。
本文将教会大家如何在Qt中通过Unicode的utf8实现,将数字上标以字符形式显示在开发的软件中。
获取数字上标的Unicode
想要数字上标,自然要先寻找数字上标的Unicode,推荐一个网站可以查到各个字符的Unicode码,该网站还很贴心的提供了各个语言的支持。
网站:Character Encodings - Unicode
比如数字上标4是2074,可以想查字典一样,找到它所在的位置,点击还可以便捷拷贝不同语言的支持,比如我用C++编,那我就复制\\xE2\\x81\\B4。
为了方便大家,我把数字0-10的码整理了一下。
数字 | Unicode | C/C++ |
0 | 2070 | \\xE2\\x81\\xB0 |
1 | 00B9 | \\xC2\\xB9 |
2 | 00B2 | \\xC2\\xB2 |
3 | 00B3 | \\xC2\\xB3 |
4 | 2074 | \\xE2\\x81\\xB4 |
5 | 2075 | \\xE2\\x81\\xB5 |
6 | 2076 | \\xE2\\x81\\xB6 |
7 | 2077 | \\xE2\\x81\\xB7 |
8 | 2078 | \\xE2\\x81\\xB8 |
9 | 2079 | \\xE2\\x81\\xB9 |
测试1
我想输出“10乘x的0次方加上5乘x的4次方”,当数字上标0和4确认好了后,通过QString的fromUtf8函数将字符串处理下,如下:
QString str = QString::fromUtf8("10x\\xE2\\x81\\xB0+5x\\xE2\\x81\\xB4");
ui->label->setText(str);
写了个Demo测试,点击输出按钮,下方字符串刷新。效果图如下所示:
测试2
我想输出“10乘x的0次方加上5乘x的45次方”,当数字上标0、4和5确认好了后,通过QString的fromUtf8函数将字符串处理下,如下:
QString str = QString::fromUtf8("10x\\xE2\\x81\\xB0+5x\\xE2\\x81\\xB4\\xE2\\x81\\xB5");
ui->label->setText(str);
4和5的数字上标挨着写即可,点击输出按钮,下方字符串刷新。效果图如下所示:
如果我的代码有什么问题,欢迎大家提出异议批评指正,一同进步~
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!
以上是关于Qt-使用QString输出数字上标(不要再用x2或x^2表示平方啦)的主要内容,如果未能解决你的问题,请参考以下文章
Qt-使用QString输出数字上标(不要再用x2或x^2表示平方啦)
Qt中lineedit输入的内容以QString存放,有办法将Qsring内容一个一个取出吗?