[PyQt] QSqlRelationalTableModel - sort on multiple columns?
Joe Planisky
jplan at jeffnet.org
Sun Mar 28 20:10:14 BST 2010
I'm writing a simple database application with PyQt (Qt version 4.5.2,
PyQt version 4.6). I'm using a QSqlRelationalTableModel to display
records in a QTableView and everything is working as expected; the
table view is populated with records, I can insert new records, sort
on a column, etc.
However, now I want to sort on multiple columns. I.e. the column
header I click on is the primary sort, and a different column is a
secondary sort. Basically, I want to do the equivalent of "SELECT ...
FROM table1 WHERE ... ORDER BY table1.email ASC, table1.date DESC;"
It seems that QSqlRelationalTableModel.sort(...) and .setSort(...)
only support sorting on a single column. I've searched for an answer
and the only thing I found was a suggestion to use different views in
my database. When I come up this empty on a search, it's usually
because there's some blindingly obvious way to do a thing that
everyone else in the world but me knows about :-) What am I missing
here?
The only thing I've done that had any success is replacing the model's
query with a new one that explicitly specifies the "ORDER BY" clause.
That worked, but seems to be a bit heavy handed.
How have others solved this problem?
--
Joe P
More information about the PyQt
mailing list