要在QTreeWidget的一个Item中显示单位,该单位包含上角标,查了一下午,最终形成了如下两行代码,解决了问题。要在QLabel、QLineEdit等中设置上角标应该也是一样的。

         QString str("10⁴m³/d");
         qItem->setText(2, str);  //qItem的类型为QTreeWidgetItem,改为其他类也一样的。

其中(“10⁴m³/d”)如果从word里面粘贴到Qt中,上角标会变为正常大小。应该要从字符映射表中粘贴过来。方法如下:

在电脑本机上搜索字符映射表,选中“高级查看”,分组依据选择Unicode子范围,在弹出窗口中选择“上/下标”。

选中要插入的上角标数字后点击 选择 按钮,再粘贴到Qt中即可。

效果如下(最后一行的最后一列):

字符映射表的使用是我在知乎上看到的回答。原作者的方法利用字符映射表查到Unicode码后,定义一个上角标QChar追加到QString中。

例:0的上角标用unicode表示为2070,如下代码的运行后str=“hello⁰”

    QChar ch(0x2070);
    QString str("hello");
    str.push_back(ch);

原作者完整答案在此:
https://www.zhihu/question/36756719/answer/68865566

更多推荐

QString中如何设置上下角标(Qt)