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