2012-03-15 4 views
0

У меня есть виджет QTableView с поведением QtGui.QTableView.SelectRows.Как получить данные из QTableView?

  1. Как я могу получить текущую выбранную строку?
  2. Могу ли я получить конкретный столбец из этой строки, а не только идентификатор строки?

Спасибо.

ответ

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

+0

Невозможно ли получить индексы таблицы из самого объекта виджета? У меня есть кнопка ('QPushButton'), которую я хотел бы использовать для запуска слота. – iTayb

+0

Спасибо большое :) – iTayb

Смежные вопросы