Search QTableView with a value(e.g. ID) which is not displayed
Say, I have a person class
int id; // only unique value, NOT displayed
QString name; // displayed
QString address; // displayed
QString age; // displayed
etc etc // displayed
The model class I am using; inherits QAbstractTableModel - MyCustomModelClass : QAbstractTableModel . MyCustomModelClass has a reference to the person list. Person list is maintained in class called MyAllData which is outside of my model class.
The table does not display the ID number of a person. But it is the only thing with which one can identify a person separately. If I want to search my table data with ID then how can I do that?
It depends a bit on which method you would like to search your model class with. Usually, I would implement a Qt::UserRole in your data() method. This role could either return your ID only or a pointer to your complete structure (using Q_DECLARE_METATYPE).
Then, you can either work your way through the model indices on your own, calling
or use methods like QT's match(.) and use Qt::UserRole there.
A third possibility would be to return the ID as if you would like to display it, but hiding the column in your view.
Asked in February 2016Viewed 2,385 timesVoted 11Answered 1 times