имеется три таблицы QTableView. Каждая последующая таблица имеет ноль и более строк связаных только с одной строкой предыдщей таблицы (master-detail relation). Необходима фильтрация строк во второй и третей таблице только связаных с соответствующей строкой первой таблицы. По видимому по колонке ID, которые во второй и третей таблице будут скрытыми.
В MainForm я делаю вызов функции TABLE2Filter когда строка из первой таблицы выбрана:
self.connect(self.ui.TABLE1.selectionModel(), QtCore.SIGNAL("currentRowChanged(QModelIndex, QModelIndex)"), self.TABLE2Filter)
def assetChanged(self, index):
if index.isValid():
record = self.assetModel.record(index.row())
id = record.value("id").toInt()[0]
self.logModel.setFilter(QString("assetid = %1").arg(id))
else:
self.logModel.setFilter("assetid = -1")
self.logModel.select()
filterTABLE2 = QtGui.QSortFilterProxyModel()
filterTABLE2.setSourceModel(self.TABLE2Model)
self.ui.TABLE2.setModel(filterTABLE2)
спасибо,
-вадим