如何在qlabel中显示下标字符

时间:2016-07-25 23:58:49

标签: python pyqt

我想使用python 3.4,qt 4.8和pyqt 4.11在QtGui.QLabel中显示下标。在下面的代码示例中,我有一个函数_subscripter,它接受​​一个整数并返回一个字符串下标,即。

_subscripter(13)
Out[8]: '₁₃'

我希望标签只显示下标' 1'但它不承认(见下图)。任何帮助表示感谢。

enter image description here

from PyQt4 import QtGui
from sys import argv, exit

def _subscripter(n):
    digits = len(str(n))
    s = ''
    for i in range(digits):
        s += chr(0x2080 + int(str(n)[i]))
    return s

def start_app():
    app = QtGui.QApplication(argv)
    window = QtGui.QLabel(_subscripter(13))
    window.show()
    window.activateWindow()
    exit(app.exec_())

if __name__ == '__main__': start_app()

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用富文本标签?

你可以这样做

from PyQt4 import QtGui
from sys import argv, exit

def start_app():
    app = QtGui.QApplication(argv)
    window = QtGui.QLabel('Some text<sub>13</sub>')
    window.show()
    window.activateWindow()
    exit(app.exec_())

if __name__ == '__main__':
    start_app()

答案 1 :(得分:0)

使用QChar代替chr应该有效。

def _subscripter(n):
    digits = len(str(n))
    s = QtCore.QChar()
    for i in range(digits):
        s += QtCore.QChar(0x2080 + int(str(n)[i]))
    return s