Hello
I have a QTableview created in Designer with the additional Python code:
self.tvObserverEffort.setModel(self.observerEffortModel)
self.
tvObserverEffort.
setSelectionMode(QTableView.
SingleSelection)self.
tvObserverEffort.
setSelectionBehavior(QTableView.
SelectRows)self.tvObserverEffort.hideColumn(0) # ObserverEffortId
self.tvObserverEffort.hideColumn(1) # Survey
self.tvObserverEffort.hideColumn(5) # Observer
self.tvObserverEffort.hideColumn(10) # Date
self.
tvObserverEffort.
horizontalHeader().
setProperty("mandatory",
QVariant(True))self.
tvObserverEffort.
setProperty("mandatory",
QVariant(True))self.tvObserverEffort.horizontalHeader().moveSection(11,0)
self.tvObserverEffort.horizontalHeader().moveSection(12,1)
self.tvObserverEffort.resizeColumnsToContents()
self.tvObserverEffort.setWordWrap(True)
self.tvObserverEffort.resizeRowsToContents()
self.tvObserverEffort.setModel(self.observerEffortModel)
self.tvObserverEffort.setSelectionMode(QTableView.SingleSelection)
self.tvObserverEffort.setSelectionBehavior(QTableView.SelectRows)
self.tvObserverEffort.hideColumn(0) # ObserverEffortId
self.tvObserverEffort.hideColumn(1) # Survey
self.tvObserverEffort.hideColumn(5) # Observer
self.tvObserverEffort.hideColumn(10) # Date
self.tvObserverEffort.setItemDelegate(QSqlRelationalDelegate(self.tvObserverEffort))
self.tvObserverEffort.horizontalHeader().setProperty("mandatory", QVariant(True))
self.tvObserverEffort.setProperty("mandatory", QVariant(True))
self.tvObserverEffort.horizontalHeader().moveSection(11,0)
self.tvObserverEffort.horizontalHeader().moveSection(12,1)
self.tvObserverEffort.resizeColumnsToContents()
self.tvObserverEffort.setWordWrap(True)
self.tvObserverEffort.resizeRowsToContents()
To copy to clipboard, switch view to plain text mode
I filter the model as follows:
surveyId = self.effortDayModel.record(index.row()).value("SurveyId").toInt()[0]
observerId = self.effortDayModel.record(index.row()).value("ContactId").toInt()[0]
effortDate = self.effortDayModel.record(index.row()).value("WatchDate").toDate()
filter = "ObserverEffort.SurveyId = %s AND ObserverEffort.ContactId = %s AND ObserverEffort.WatchDate = '%s'" % (surveyId, observerId, effortDate.toString("yyyy-MM-dd"))
self.observerEffortModel.setFilter(filter)
self.observerEffortModel.select()
self.tvObserverEffort.show()
surveyId = self.effortDayModel.record(index.row()).value("SurveyId").toInt()[0]
observerId = self.effortDayModel.record(index.row()).value("ContactId").toInt()[0]
effortDate = self.effortDayModel.record(index.row()).value("WatchDate").toDate()
filter = "ObserverEffort.SurveyId = %s AND ObserverEffort.ContactId = %s AND ObserverEffort.WatchDate = '%s'" % (surveyId, observerId, effortDate.toString("yyyy-MM-dd"))
self.observerEffortModel.setFilter(filter)
self.observerEffortModel.select()
self.tvObserverEffort.show()
To copy to clipboard, switch view to plain text mode
The problem that I am having is that although the TableView is showing the correct number of rows when the filter is applied, the table rows only display data when a cell in the row is selected. What am I missing ??
Thanks for any help you may have
Bookmarks