2016-07-25 13 views
0

zeigen Ich möchte in Python 3.4, qt 4.8 und pyqt 4.11 Indices in einem QtGui.QLabel zeigen. In dem Codebeispiel unten Ich habe eine Funktion _subscripter mit einem Integer und gibt einen String Index dwie tiefgestellte Zeichen in einem qlabel

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

möchte ich das Etikett zeigen nur den Index ‚₁₃‘ aber es nicht erkennen, dass (siehe Bild unten). jede Hilfe wird geschätzt.

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

Antwort

1

Haben Sie versucht, stattdessen ein Rich Text Label zu verwenden?

Sie könnten dies tun

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

QChar anstelle von chr Verwendung funktionieren sollte.

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

sieht aus wie ich diese Klasse in meinem Setup bin fehlt ... '' QtCore.QChar'' wirft ein Attribut Fehler .. Vielleicht, das hat etwas mit dem Thema zu tun beginnen mit? Ich dachte mit Python 3.4 '' QChar'' und '' QString'' werden nicht benötigt – asdf

+0

Sie haben vielleicht Recht, ich habe dies mit Python 2.7 getestet, da ich Python 3 nicht auf meinem System installiert habe. Mit 2.7 kann ich auch einfach 'unichr' verwenden, um den Job zu erledigen. 'chr' in Python 3 soll das gleiche tun, also bin ich mir nicht sicher, warum es nicht funktioniert – user3419537

+0

@ user3419537. Standardmäßig stellt PyQt4 nur die Klassen "QString" und "QChar" für Python 2 zur Verfügung, nicht für Python 3. Für letztere werden diese Klassen automatisch Python-String-Objekten zugeordnet. – ekhumoro