2012-03-15 71 views
0

我確實有一個QTableView小部件,其中有QtGui.QTableView.SelectRows行爲。如何從QTableView中獲取數據?

  1. 如何獲取當前選定的行?
  2. 我可以從該行獲取特定的列嗎,而不僅僅是該行的id?

謝謝。

回答

1

QTableView繼承QAbstractItemView的信號。爲了得到當前選定行你有你的插槽連接到一個

void activated (const QModelIndex & index) 
void clicked (const QModelIndex & index) 
void pressed (const QModelIndex& index) 

EDIT1的: QModelIndex有方法row()column()確切地知道已經點擊/選擇哪個單元。

self.table.clicked.connect(self.clickedSlot) 
def clickedSlot(self,index): 
     print "Column is " + str(index.column()) 
     print "Row is " + str(index.row()) 

如果您是Qt/PyQt的新手,您可能想了解如何使用信號和插槽。

EDIT2:如果你想從窗口小部件本身

self.table.selectionModel.currentIndex() 
+0

如何使用它的索引?假設我使用'self.table.clicked.connect(self.download_slot)'。我怎樣才能從槽中獲得'QModelIndex' var? – iTayb 2012-03-16 11:55:18

+0

有沒有辦法從窗口小部件對象本身獲取表的索引?我有一個按鈕('QPushButton'),我想用它來啓動插槽。 – iTayb 2012-03-16 15:59:44

+0

非常感謝你:) – iTayb 2012-03-16 20:40:10