基本上在第一个函数中,我已经使用鼠标选择了单元格,并且我能够返回 通过data()方法从中汲取数据并将其显示在第一个函数中。
但是,我想稍微改变它,当我选择一个单元格时,它将显示该行中第一个单元格(第一列)的数据。由于我已经拥有所选单元格的索引(currentCell),我只是实例化一个新的ModelIndex对象并为其分配所选索引。然后我将对象的列更改为0.最后,我想使用data()mtohod使用新对象检索数据,但没有任何内容。它是null。我花了很多时间在它上面并且不知道是什么问题。 感谢任何提供帮助和阅读的人:)
def tbRobotChanged(self, currentCell):
# get the selected cell's index from currentCell,Implement the Slot method
self.statusBar().showMessage("Slected Robot is "+
currentCell.data().toString())
def tbRobotChangedt(self,currentCell):
crow_header_Index = QtCore.QModelIndex()
crow_header_Index = currentCell
crow_header_Index.column = 0
self.statusBar().showMessage("Slected Robot:"+crow_header_Index.data().toString())
答案 0 :(得分:0)
您不能仅仅构建或修改QModelIndex
个实例。创建和交付它们是模型的工作。您应该向模型(.index
方法)询问该行第一列的QModelIndex
:
def tbRobotChangedt(self,currentCell):
model = currentCell.model()
# or if you keep your model in a variable, use it.
# .index normally takes 3 arguments.
# row, column, parent
# If this is a table model, you won't need the third argument.
# because table is flat. no parents
firstColumn = model.index(currentCell.row(), 0)
# then get data as usual
self.statusBar().showMessage("Selected Robot: %s" % firstColumn.data().toString())