2016-07-25 17 views
0

python 3.4、qt 4.8、pyqt 4.11を使用してQtGui.QLabelに下付き文字を表示したいと思います。私は以下のコードサンプルでは整数を受け取り、文字列の添字すなわちqlabelの下付き文字の表示方法

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

私はラベルをしたいだけの添字を示して返す関数_subscripterを持っている「₁₃」しかし、それは(下の画像を参照)ことを認識しません。どんな助けもありがたい。 chrの代わりにQCharを使用して

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

答えて

1

代わりにリッチテキストラベルを使用してみましたか?私は私のセットアップでそのクラスが欠けてるよう... `` QtCore.QChar``が属性エラーをスローします。この

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

動作するはずです。

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 
+0

を行うことができ

が見える...たぶん問題とは何かを持っています始める?私はpython 3.4と思った。 '' QChar''と '' QString''は必要ない。 – asdf

+0

あなたが正しいかもしれないが、Python 3を自分のシステムにインストールしていないので、これをpython 2.7でテストした。 2.7では、単にunichrを使って仕事を終わらせることもできます。 python 3の 'chr'は同じことをするはずですから、なぜそれが動作しないのかわかりません。 – user3419537

+0

@ user3419537。デフォルトでは、PyQt4はPython 3ではなく、Python 2の 'QString'と' QChar'クラスのみを提供します。後者の場合、これらのクラスは自動的にpython文字列オブジェクトにマップされます。 – ekhumoro

関連する問題