Название: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: Пытон от Сентябрь 15, 2013, 09:54 Представление QTableView
У неё модель QSqlTableModel Требуется: В QTableView найти и сделать текущей строчку в которой значение столбца fam = "Иванов" Чтой-то я не нахожу никаких методов типа find, seek, locate и т.д. ни для tableview, ни для sqltablemodel. В какую сторону хоть смотреть? Делать выборку посредством фильтра или sql-запроса - не подходит! Надо чтобы пользователь набрал куда-нибудь в текстбокс фамилию, нажал на кнопочку и таблица на экране отобразила ту свою часть в которой начинаются строки с такой фамилией. Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: VPS от Сентябрь 15, 2013, 10:32 Попробуйте использовать QSortFilterProxyModel, как промежуточную. Поиск делать по исходной модели, потом найденный индекс преобразовывать в индекс прокси модели, а уже потом в представлении выделять нужную строку.
P/S: если Вы не сортируете вывод в представлении посредством вызова соответствующего метода класса QTableView, то можно обойтись и без прокси модели. Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: Пытон от Сентябрь 15, 2013, 10:44 Э-э-э-э...
А сам поиск-то чем делать? Я ничего не сортирую. Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: VPS от Сентябрь 15, 2013, 11:06 Если записей в таблице не очень много, то можно сделать итерацию по строкам модели (с поиском нужного значения в заданном столбце) или использовать "QAbstractItemModel::match".
Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: Пытон от Сентябрь 15, 2013, 11:14 Я использую QSqlTableModel. У неё, вроде как, нету никакого match
Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: Пытон от Сентябрь 15, 2013, 11:19 Что-то совсем ужо не врубаюсь. По какому месту итерацию-то делать? for something in чего?
Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: GreatSnake от Сентябрь 15, 2013, 11:23 Я использую QSqlTableModel. У неё, вроде как, нету никакого match Тебе же сказали про метод базового класса.Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: Пытон от Сентябрь 15, 2013, 11:55 Пожалуйста, кто-нибудь приведите пример строки с этим match.
Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: GreatSnake от Сентябрь 15, 2013, 12:14 Пожалуйста, кто-нибудь приведите пример строки с этим match. Мде... А в чём там сложность ???Если уж элементарный match() не осилить, то кто мешает самому найти? Код
Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: Пытон от Сентябрь 15, 2013, 12:30 Использую sqlite.
match ищет данные только по той части таблицы, которую sqltablemodel соизволил к текущему моменту загрузить. Если пользователь не бежал бегунком по вьюшке и не пробежался до самого конца таблицы, то match практически бесполезен... Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: GreatSnake от Сентябрь 15, 2013, 13:01 Ну дык, коли не нашел в вычитанных данных, подгружай потихоньку через fetchMore() (http://doc.crossplatform.ru/qt/4.7.x/qsqlquerymodel.html#fetchMore) пока canFetchMore() == true и ищи уже в новых.
Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: Пытон от Сентябрь 15, 2013, 13:08 Бесконечно тоскую по досово-фокспровскому:
locate for fam = 'Иванов' if found() ? 'Иванов нашёлся! Указатель текущей записи в таблице автоматически переставлен на него!' EndIf Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: Пытон от Сентябрь 15, 2013, 13:58 Сколько ж текста нужно писать в современных языках, дабы получить то, что в допотопных укладывалось в пару коротеньких строчек.
Этот match чёртов. Документация к PyQt4 сделана неудобно! Хрен поймёшь к какому модулю относится какой-либо параметр для какого-либо метода класса и какие значения он может принимать. Название: Re: QTableView, QSqlTableModel. Как сделать поиск значения в таблице? Отправлено: Bepec от Сентябрь 15, 2013, 16:09 Пишите на php - он даст вам простоту, но не даст скорости и возможностей :)
|