如何在 QComboBox 的 addItem 中下标字符串

How to subscript string in QComboBox's addItem

我正在尝试使用 addItem 向 QComboBox 输入化学式,但我不知道如何为数字添加下标。如果能得到任何帮助,我将不胜感激。

我试过: 1.数字“$\3$”前后使用美元符号($) 2.使用大括号和美元符号“$_{3}$” 3.使用Unicode格式“\u2083”。这个有效,但当您看到下拉菜单的选项时,它只显示子脚本编号。在你 select 这个选项之后,它会显示一个竖线来代替数字(见图片)

self.amp_sub1_Box = QtGui.QComboBox(self)
self.amp_sub1_Box.addItem("H")
self.amp_sub1_Box.addItem("CH\u2083")
self.amp_sub1_Box.addItem("CH\u2082CH\u2083")

unicode 格式应该可以。在此示例中,下标数字正确显示在下拉列表以及所选项目中:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
from PyQt5 import QtGui, QtWidgets

 class MyWidget(QtWidgets.QWidget): 
    def __init__(self): 
        QtWidgets.QWidget.__init__(self) 
        self.setGeometry(200,100,600,700)
        self.combo = QtWidgets.QComboBox(self)
        self.combo.setGeometry(50,100,300,25)
        items = ('CH3-CH3','CH\u2083-CH\u2083','H2O','H\u20820','H2SO4','H\u2082SO\u2084')
        for i in range(0,len(items)):
            self.combo.addItem(items[i])

app = QtWidgets.QApplication(sys.argv) 
widget = MyWidget()
widget.show()
sys.exit(app.exec_())

正如 ekhumoro 在评论中所建议的那样,更改字体样式解决了这个问题。只需使用:QComboBox.setFont(QtGui.QFont('Verdana'))