0

基本上在第一个函数中,我得到了使用鼠标选择的单元格,我可以通过 data() 方法从中检索数据并将其显示在第一个函数中。

但是,我想稍微改变一下,当我选择一个单元格时,它将显示该行中第一个单元格(第一列)的数据。由于我已经有了所选单元格的索引(currentCell),我只需实例化一个新的 ModelIndex 对象并将所选索引分配给它。然后我将对象的列更改为 0。最后,我想使用 data() mtohod 用新对象检索数据,但那里什么都没有。它是空的。我花了很多时间在上面,不知道是什么问题。感谢任何提供一些努力来帮助和阅读的人:)

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())
4

1 回答 1

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())
于 2013-02-07T07:07:55.477 回答