2015-07-20 1 views
0

J'essaye d'entrer une formule chimique en utilisant addItem à un QComboBox, mais je ne sais pas comment inscrire les nombres. J'apprécierais vraiment toute aide que je pourrais recevoir.Comment inscrire une chaîne dans l'addItem de QComboBox

J'ai essayé: 1. À l'aide des signes dollar ($) avant et après le numéro "\ 3 $ $" 2. À l'aide des accolades et des signes dollar "$ _ {3} $" 3. Utilisation d'Unicode formatage "\ u2083". Celui-ci fonctionne mais il montre seulement le numéro sous-scripté lorsque vous voyez les options du menu déroulant. Après avoir sélectionné l'option, il va afficher une barre verticale en place du nombre (voir photos)

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

Ressemble à un problème de police. Une police différente est utilisée dans la liste déroulante (et il n'y a pas d'anti-aliasing). Je me demande si la police utilisée pour l'élément sélectionné ne supporte pas les caractères en dehors de la gamme Latin1/Windows-1252? Essayez de définir une police sur la case à cocher qui a un support Unicode approprié (par exemple DejaVu Sans). – ekhumoro

+0

Merci! Cela a fonctionné. Après avoir changé le type de police en Verdana, je suis devenu capable de voir les indices. – theCHemist90

Répondre

0

Comme ekhumoro suggéré dans les commentaires, changer le style de police a résolu ce problème. Il suffit d'utiliser: QComboBox.setFont(QtGui.QFont('Verdana'))

0

mise en forme unicode devrait fonctionner. Dans cet exemple, les numéros indicés sont affichés correctement dans la liste déroulante, ainsi que des éléments sélectionnés

#!/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_()) 
+0

J'ai modifié mon article original et ajouté une image. Je l'ai encore essayé mais je ne travaille toujours pas. – theCHemist90

+0

sur quel OS travaillez-vous? Est-ce qu'il supporte Unicode? –

+0

J'utilise Windows 8.1 – theCHemist90