为什么我不能在表格的某个单元格中检索我想要的数据?

时间:2013-02-06 15:58:10

标签: python pyqt qabstracttablemodel qmodelindex

基本上在第一个函数中,我已经使用鼠标选择了单元格,并且我能够返回 通过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())

1 个答案:

答案 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())