Я использую QSqlTableModel
в Qt C++, и я хотел бы показать только строки, содержащие текст, который находится в QComboBox
. Например, когда я нажимаю элемент «Джон» в поле со списком, в представлении таблицы должны отображаться только имена, начинающиеся с «Джон». Я понятия не имею, как это сделать.
Как показать только определенные строки в QSqlTableModel, используя текст поля со списком?
Ответы (2)
Класс для ваших нужд: QSortFilterProxyModel:
Вместо того, чтобы отображать QSqlTableModel напрямую, поместите QSortFilterProxyModel между моделью и вашим представлением:
QSortFilterProxyModel* proxyModel = new QSortFilterProxyModel( this );
proxyModel->setSourceModel( yourQSqlTableModel );
yourView->setModel( proxyModel );
Затем вы можете отсортировать или отфильтровать эту модель (проверьте разделы Sorting
и Filtering
в ссылке вверху).
person
Tim Meyer
schedule
26.07.2013
Большое спасибо Тим. Теперь буду искать сортировку и фильтрацию
- person Rado G; 27.07.2013
Кстати, если ваш тип фильтрации можно легко обеспечить через SQL, вы можете просто использовать метод QSqlTableModel setFilter()
.
person
MasterAler
schedule
22.07.2014