2016-07-25 15 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

대신 리치 텍스트 레이블을 사용해 보셨습니까?

당신은 내가 내 설정에서 해당 클래스 누락 것 같은이

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

이 보이는 할 수있는 ...''QtCore.QChar''이 속성 오류가 발생합니다 .. 아마 문제를 함께 할 수있는 뭔가가 우선 첫째로? 나는 파이썬 3.4로 생각했다.''QChar''와''QString''은 필요하지 않다. – asdf

+0

내 시스템에 파이썬 3을 설치하지 않았기 때문에 아마도 파이썬 2.7로 테스트했을 것이다. 2.7에서는 작업을 끝내기 위해'unichr'을 사용할 수도 있습니다. 파이썬 3에서'chr'은 똑같은 일을하기로되어 있는데, 왜 작동하지 않는지 모르겠습니다. – user3419537

+0

@ user3419537. 기본적으로 PyQt4는 Python 3이 아닌 Python 2 용'QString'과'QChar' 클래스만을 제공합니다. 후자의 경우, 이들 클래스는 자동으로 파이썬 문자열 객체에 매핑됩니다. – ekhumoro

관련 문제