2016-10-28 7 views
0

Как мы можем получить доступ к элементу в QtableView? Линия self.tableView.item(1,1) не работает sem? Он дает ошибку AttributeError: 'QTableView' object has no attribute 'item'Доступ к определенному элементу/элементу в QTableView?

Как мы можем получить доступ к определенному элементу в QTableView say (3,4)?

+0

Насколько я знаю, в QTableView атрибута элемента нет. Согласно [документации] (http://pyqt.sourceforge.net/Docs/PyQt4/qtableview.html) вы можете только сказать self.tableView.rowAt (3) .columnAt (1) – mutantkeyboard

+1

@mutantkeyboard self.tableView.rowAt (3) .columnAt (1) не работает. AttributeError: объект 'int' не имеет атрибута 'ColumnAt' – learncode

+0

Я не видел весь код и что вы пытаетесь выбрать? Если вам нужен визуальный выбор, вы можете сделать что-то вроде 'self.tableView.setSelectionBehavior (QAbstractItemView.SelectRows)'. Он выберет строку, которую вы нажмете. Если вы нацеливаетесь на определенную ячейку, используйте метод 'QModelIndex indexAt' – mutantkeyboard

ответ

1

Я вы используете QStandardItemModel с QTableView, вы можете сделать это:

model = self.tableView.model() 
item = model.item(1, 1) 

EDIT:

Если вы хотите текст элемента, вы можете сделать:

text = item.text() 

Другие свойства элементов см. В справочнике QStandardItem.

+1

self.model.item (1,1) возвращает что-то вроде местоположения элемента (<объект PyQt4.QtGui.QStandardItem при 0x0000000007FAA0D8> ), а не значение элемента? это что-то немного другое? Я использую PyQt4, если это помогает! – learncode

+1

@VenkataNarsiReddyVaddula. Да, он возвращает элемент - это то, о чем вы просили. Если вам нужен текст элемента, все, что вам нужно сделать, это 'text = item.text()'. – ekhumoro

+1

Извините, я не сделал это нарочно. – learncode