L'utilisateur définit manuellement les valeurs dans toutes les cellules d'un QTableWidget. Les valeurs de la première ligne du tableau représentent les valeurs que nous voulons stocker dans un dictionnaire FirstRowDict
. Les valeurs de la deuxième ligne seront mises en SecondRowDict
et ainsi de suite.Remplir un dictionnaire avec toutes les valeurs de cellule de la ligne donnée
donc d'une table comme celle montrée dans l'image, nous voulons finir dans cet exemple avec FirstRowDict={0:10,1:20}
et SecondRowDict={0:30,1:40}
Pour cela j'ai créé un bouton et ajouté une action met à jour les dictionnaires cibles lorsque vous cliquez dessus:
def button_click():
for j in range(0,2):
FirstRowDict.update({i: float(str(tablewidget.itemAt(0,j).text()))})
#I put "0" in itemAt because first row is zero
#tablewidget = QTableWidget() declared earlier in the source code
SecondRowDict.update({i: float(str(tablewidget.itemAt(1,j).text()))})
print '1st_Row_Dict=%s'%1st_Row_Dict,'\n2nd_Row_Dict=%s'%2nd_Row_Dict
La sortie n'est pas correct car les dictionnaires sont remplis avec la même valeur et non la valeur unique de chaque cellule. Je reçois FirstRowDict={0:10,1:10}
et SecondRowDict={0:10,1:10}
Il semble que je dois créer un nouvel élément en utilisant QTableWidgetItemhttp://doc.qt.nokia.com/4.7-snapshot/qtablewidget.html#item
Python begginer, quelques conseils seraient appréciés.
Qu'obtenez-vous en sortie? BTW, '1st_Row_Dict' n'est pas un nom valide en Python. – Avaris
C'est ce que je reçois: FirstRowDict = {0: 10,1: 10}, SecondRowDict = {0: 10,1: 10} .J'ai édité les noms de dictionnaire parce que je viens de choisir ces noms pour l'exemple – CosmoSurreal