Hello André! Thank you for the proxy-model explanation.
On Mon, Jul 2, 2012 at 3:42 AM, André Somers <an...@familiesomers.nl> wrote: > Op 1-7-2012 21:50, K. Frank schreef: >> ... >>>> ... >>>> I have a QTableView (backed by a QSqlTableModel) and am looking >>>> for a simple way to make a column read-only. >>>> ... >> ... >> In my case, I have only one view into the model, so I can use your >> suggested approach to make (a column of) the model read-only. >> But, for future reference, what's the best way to make the view >> read-only? (For example, what if my application has two views >> into the same model, only one of which should be read-only?) >> > You can use a proxy model to do that. There is a ready-made one that > does what you want available on the qt-project wiki: > http://qt-project.org/wiki/QSortFilterProxyModel_subclass_for_readonly_columns_columns_with_checkboxes_and_password_columns Thank you. That's a good reference and a nice utility class. Also, I think I'm getting a better sense now of how the Qt model classes fit together. > If you have multiple views on a single model with different demands for > what column should be read-only, you can create multiple proxy models on > the same SQL model. Yes, this addresses my (hypothetical) multiple-view issue. > One note on the wiki article: for Qt 4.8 and up, you should replace the > use of QSortFilterProxyModel with QIdentityProxyModel (as long as you > don't need filtering or sorting too, that is). Yes. (Including those troglodytes, such as myself, who insist upon using -- shudder -- a Release Candidate, 4.8.0-rc1!) For the record, in my case I ended up building a read-only delegate (that overrides createEditor to return NULL). So far it seems to work fine. I did it this way because using the delegate seems more view-ish, and in my use case I think of the read-only attribute as being attached to the view. (However, I don't really feel like I've fully absorbed the Qt philosophy about where the model leaves off and the view begins.) Also, the read-only delegate seems to me to be lighter weight (although without knowing more about what is going on under the Qt hood, I may be wrong about this). > André Thanks again for your help. K. Frank _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest