[PyQt] overriding QSqlRelationalTableModel's data method
Scott Frankel
frankel at circlesfx.com
Sun Apr 4 01:16:25 BST 2010
On Apr 2, 2010, at 5:05 PM, Scott Frankel wrote:
> I'm hoping to be able to adapt a QSqlRelationalTableModel object to
> display only specified item rows directly. Using the view's
> setRowHidden() method is proving clunky.
Apologies in advance for taking up more bandwidth with this data model
issue.
I'm having a chicken-egg problem with retrieving data from my
subclassed QSqlRelationalTableModel object.
1)
If I try to retrieve a record using the model's record() method with a
row argument, I get recursion errors: RuntimeError: maximum recursion
depth exceeded
item = self.record(index.row()) # causes recursion errors
2)
Following example code for custom models [Summerfield chapt 14] and
reviewing the select function in qsqlrelationaltablemodel.cpp, I've
tried overriding the model's select() method and populating a list
with item objects:
item = self.items[index.row()] # overriding select() masks
data() method
For some reason, overriding select in my QSqlRelationalTableModel
subclass prevents the data() method from being called.
Is there another way to both retrieve SQL data and manipulate which of
it gets displayed in a view?
Thanks!
Scott
More information about the PyQt
mailing list