2012-03-15 561 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