2014-02-11 32 views
0

在QTableView中,我需要找到它被點擊的字段的索引。我有以下的方法,我想通過點擊該表中的字段中按下「Ctrl + V」粘貼剪貼板中的值:在QTableView中查找被點擊的字段的索引

QShortcut(QKeySequence('Ctrl+v'),self).activated.connect(self._handlePaste) 

    # paste the value 
def _handlePaste(self): 
    clipboard_text = QApplication.instance().clipboard().text() 
    #item = QTableWidgetItem() 
    #item.setText(clipboard_text) 
    NvmQtModel.setData(self, index, clipboard_text, Qt.DisplayRole) 
    print clipboard_tex 

更新:

# paste the value 
def _handlePaste(self): 
    clipboard_text = QApplication.instance().clipboard().text() 
    index = QItemSelectionModel.selectedIndexes() 
    NvmQtModel.setData(self, index, clipboard_text, Qt.DisplayRole) 

例外:

index = QItemSelectionModel.selectedIndexes() 
    TypeError: QItemSelectionModel.selectedIndexes(): first argument of unbound method must have type 'QItemSelectionModel' 
+2

您必須在模型的實際實例上調用'selectedIndexes'。你試圖以靜態的方式調用它。 'tableView.selectionModel()。selectedIndexes()'將是正確的方法,在這裏你必須用任何實際上包含你的QTableView的變量替換tableView。 'NvmQtModel.setData(...)'看起來也有些可疑。 – sebastian

回答

1

QAbstractItemView::indexAt方法適用於您的問題。但我建議你使用selection model而不是檢測點擊次數。

+0

你是不是這個意思? index = QItemSelectionModel.selectedIndexes() –

+1

是的。但是你應該確定,多重選擇沒有啓用。因爲選定的索引是數組。 –

+0

異常: TypeError:QItemSelectionModel.selectedIndexes():未綁定方法的第一個參數必須具有類型'QItemSelectionModel' –