2013-02-06 44 views
0

Basiclly在第一個函數中,我已經獲得了使用鼠標選擇的單元格,並且我可以通過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()) 

回答

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()) 
+0

那麼,它的工作原理很well.This是我的第一篇文章here.It很不錯的,你在這樣一個詳細的解釋way.Thx爲你提供幫助。 – Derek

+0

@Derek:我很高興它有幫助。歡迎來到SO :)。請務必查看[FAQ](http://stackoverflow.com/faq)以獲得更好的體驗。 – Avaris

相關問題