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的数字上标挨着写即可,点击输出按钮,下方字符串刷新。效果图如下所示:

       如果我的代码有什么问题,欢迎大家提出异议批评指正,一同进步~

       如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

猜你喜欢

转载自blog.csdn.net/zhaitianbao/article/details/126778219