Проблемы с табличными виджетами в python - PullRequest
2 голосов
/ 27 февраля 2012

Я в основном пытаюсь найти массив и заполнить виджет таблицы результатами поиска. Все остальное, кажется, работает, но когда я выполняю свой код и заполняю всю информацию, я получаю сообщение об ошибке, которое говорит TypeError: индексы списка должны быть целыми числами, а не str. это код, который у меня проблема с

if(studentRecord['Student Name'] == self.ui.SearchlineEdit.text()):
    studentsArray = self.loadstudentArrayOfRecords()
    self.ui.DetailstableWidget.insertRow(0)
    self.ui.DetailstableWidget.setItem(0,0,QtGui.QTableWidgetItem(studentsArray[self.ui.SearchlineEdit.text()]['Student Name']))
    self.ui.DetailstableWidget.setItem(0,1,QtGui.QTableWidgetItem(studentsArray[self.ui.SearchlineEdit.text()]['Student Code']))
    self.ui.DetailstableWidget.setItem(0,2,QtGui.QTableWidgetItem(studentsArray[self.ui.SearchlineEdit.text()]['Instrument Name']))
    self.ui.DetailstableWidget.setItem(0,3,QtGui.QTableWidgetItem(studentsArray[self.ui.SearchlineEdit.text()]['Instrument Code']))

1 Ответ

1 голос
/ 27 февраля 2012

выглядит как

self.loadstudentArrayOfRecords() должен возвращать диктат из списков, но возвращает диктат из списков.

Проверка функции self.loadstudentArrayOfRecords().

Вы бы нашли ошибку быстрее, если бы сделали код более читабельным:

searchText = self.ui.SearchlineEdit.text()
if studentRecord['Student Name'] == searchText:
    studentsArray = self.loadstudentArrayOfRecords()
    student = studentsArray[searchText]
    tableWidget = self.ui.DetailstableWidget
    tableWidget.insertRow(0)
    tableWidget.setItem(0, 0, QtGui.QTableWidgetItem(student['Student Name']))
    tableWidget.setItem(0, 1, QtGui.QTableWidgetItem(student['Student Code']))
    tableWidget.setItem(0, 2, QtGui.QTableWidgetItem(student['Instrument Name']))
    tableWidget.setItem(0, 3, QtGui.QTableWidgetItem(student['Instrument Code']))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...