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的码整理了一下。

数字UnicodeC/C++
02070\\xE2\\x81\\xB0
100B9\\xC2\\xB9
200B2\\xC2\\xB2
300B3\\xC2\\xB3
42074\\xE2\\x81\\xB4
52075\\xE2\\x81\\xB5
62076\\xE2\\x81\\xB6
72077\\xE2\\x81\\xB7
82078\\xE2\\x81\\xB8
92079\\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 c++中获取Json数组中Qstring的输出

Qt中将Qstring的内容输出为16进制

Qt中lineedit输入的内容以QString存放,有办法将Qsring内容一个一个取出吗?

Qt中,把UTF-8的QString,转换成GBK的char[],怎么做?

Qt:在 QString 中格式化整数