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

时间:2015-07-20 17:24:24

标签: pyqt qcombobox

我正在尝试使用addItem为QComboBox输入化学式,但我不知道如何下标这些数字。我真的很感激我能得到的任何帮助。

我试过了: 1.在数字" $ \ 3 $"之前和之后使用美元符号($) 2.使用大括号和美元符号" $ _ {3} $" 3.使用Unicode格式" \ u2083"。这个可以工作,但只有当您看到下拉菜单的选项时,它才会显示子脚本编号。选择该选项后,它会显示一个垂直条代替数字(参见图片)

enter image description here

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")

2 个答案:

答案 0 :(得分:0)

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_())

答案 1 :(得分:0)

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