Здравствуйте, гость ( Вход | Регистрация )
JohnZ | Дата 19.5.2017, 12:26 |
Решилось с пом-ю prog.org.ru Раскрывающийся текст bool fpQForma::match(int col, QVariant value, bool seek) { QModelIndex idx; int row_count = model->rowCount(); for(int i = 0;i < row_count;i++) { idx = model->index(i, col); if( model->data(idx) == value) { if (seek) viewChild->setCurrentIndex(idx); return(true); } } return(false); } Не самое лучшее решение, но работает ! На 2-3 тыс записей ищет довольно быстро ... |
|
JohnZ | Дата 8.5.2017, 15:43 |
Народ, аууууу Неужели никаких идей ? Нарыл в нете более-менее подходящий вариант с использованием QModelIndexList QAbstractItemModel::match ( .... ) const но как ей "объяснить" в какой колонке искать не знаю И кроме того, как пишут на prog.ru если юзер не скролил до конца таблицы, т.е. данные не кешированы полностью, match практически беЗполезен По-крайней мере для куте 4.3 так было ... |
|
JohnZ | Дата 4.5.2017, 10:58 |
Всем здравия ! Есть такой класс объекта... Раскрывающийся текст class fpForma : public QDialog { Q_OBJECT public: fpForma(int id, MainWindow *parent = 0, Qt::WindowFlags f = 0); ~fpForma(); bool initForm(int Cmd = 0); public slots: void save(); void submit(); private: QSqlTableModel *model; QTableView *view; QModelIndex curIndex; QSqlRecord curRecord; }; И его класс модели, почти стандартный ... Раскрывающийся текст class fpTableModel : public QSqlTableModel { public: fpTableModel(QObject * parent = 0, QSqlDatabase db = QSqlDatabase()); ~fpTableModel(); QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; void setTable ( const QString & tableName ); int columnCount(const QModelIndex &parent = QModelIndex()) const; void setDefFields(QStringList & df); private: int colsInList, colsInForm; QStringList DefFields; }; Таблица, обслуживаемая этим объектом имеет примерно такую структуру
Выглядит это примерно как на картинке в прицепе ... В скрипте загружаем и инициализируем драйвер сканера ШК
Функцмя скрипта на которую прицеплен сканер ШК
Код со сканера в ф-цию приходит ! Код ШК является невидимой колонкой ! Сам объект fpForma в скрипте виден как frm579 ... И вотЪ теперь вопрос, - как в объекте fpForma организовать поиск и позиционирование на нужную строку ? Ведь доступа к модели из скрипта у меня нет ?! :-( Заранее благодарен за помощь !!! |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 22:50 |