python中的表小部件问题

2024-06-25 23:39:34 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我尝试搜索一个数组,并用搜索结果填充一个表小部件。其他的一切似乎都在工作,但当我执行代码并填写所有信息时,我总是收到一条错误消息:列表索引必须是整数,而不是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']))

Tags: 代码textnameselfuicode数组student
1条回答
网友
1楼 · 发布于 2024-06-25 23:39:34

看起来像

self.loadstudentArrayOfRecords()应返回dict的dict,但返回list的dict。在

检查函数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']))

相关问题 更多 >