459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
||||||
1 | ||||||
QStringListModel, setData() и data()29.01.2022, 07:09. Показов 7521. Ответов 117
Метки нет (Все метки)
Доброе утро!
Пытаюсь следующим образом добавить к модели QStringListModel дополнительные данные в Qt::UserRole + 1:
P.S. Конечная цель этих мероприятий - настроить параллельную фильтрацию записей в двух списках, где записи имеют одни и те же индексы (см. скрин).
0
|
29.01.2022, 07:09 | |
Ответы с готовыми решениями:
117
QStringListModel Не получается создать виджет не из main функции QGraphicsItem и setData SetData() после insertColumn TableView->model->setData() не работает Реализация метода SetData интерфейса IDataObject |
29.01.2022, 07:28 | 2 |
О каких индексах речь? Просто индексы или QModelIndex? У меня мнение, что вы что-то не то делаете и не так используете инструменты. Для фильтрации есть класс QFilterProxyModel, для одновременной выборки из двух View класс QItemSelectionModel. Можете более точно и подробно рассказать вашу задачу и конечную цель, что нужно получить в итоге?
0
|
459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
|
29.01.2022, 11:02 [ТС] | 3 |
В конечном итоге хотелось бы получить минисловарь с двумя QStringListView (слова и переводы) и QLineEdit над ними для ввода слов. При вводе в любой QLineEdit слова должны отфильтровываться в QStringListView (да, с помощью QSortFilterProxyModel, до этого я дотумкал), при этом в QStringListView должны отфильтровываться переводы в параллель вводимому слову. Предполагаю использовать в базе данных словаря таблицу для хранения вида "индекс" - "слово" - "перевод", для чего и затеялся эти индексы впихнуть в модель.
0
|
1072 / 678 / 182
Регистрация: 30.03.2021
Сообщений: 2,120
|
||||||
29.01.2022, 15:28 | 4 | |||||
Ender Che, накидал простенький пример словаря
кучка букв Кликните здесь для просмотра всего текста
Очень возможно, что это говнокод и я снова нуб и опозорился , сам только вникаю в MVC поэтому это просто моя первае попытка использовать QSortFilterProxyModel. Опираясь на вышесказанное -сделал пару списков, в первом англ. слово, во втором перевод, и загнал их в QMap (сразу же ограничения: оба списка должны быть одинаковой длинны, и англ. слову сопоставлено лишь одно слово перевода, хотя можно было бы сопоставлять со списком слов, но я не стал усложнять код... И вот этот момент вызывает сомнения, т.к. если слов будет тысячь десять, причем порядок английских в списке не будет совпадать с русскими-то вручную всё это устаканить будет очень непросто, поэтому я даже не представляю, как это реализовать... Видимо искать базы словарей и отталкиваться от их внутренней организации для построения данных модели.) -сделал пару QStringListModel, что бы удобно сразу загнать туда списки, а не с помощью setData в QSortFilterProxyModel -сделал референсы на модели списков в QSortFilterProxyModel -при клике на строку в списке англ. слов, или вводе текста в поле ввода - ищем в словаре сопоставленный перевод и фильтруем регуляркой модель списка перевода Вот как-то-так... код: Кликните здесь для просмотра всего текста
0
|
459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
|
29.01.2022, 15:43 [ТС] | 5 |
Да, я это тоже предполагаю.
Вот тут мне как раз хотелось бы, чтобы списки иностранного языка и перевода были синхронизированы, то есть чтобы одновременно с фильтрацией английских слов фильтровались и переводы. Чувствую, что проще будет использовать просто другой интерфейс, с одним списком, одним лайнэдитом и комбо для выбора языка ввода. А по двойному клику на элемент списка выдавать в отдельном диалоговом окне статью с переводом/переводами.
0
|
1072 / 678 / 182
Регистрация: 30.03.2021
Сообщений: 2,120
|
|
29.01.2022, 16:17 | 6 |
Как я понял (правильно ли?), фильтруем англ. список , чтобы он, например, вывел все слова, начинающиеся на "We". При этом ру. список должен вывести переводы всех этих слов? Если так то навскидку, надо отфильтровать регуляркой словарь (в отдельный словарь? в пару списков строк для англ и ру?) и работать уже с этими данными (тоесть фильтрацию делать в словаре а не в модели, т.к. модель англ слов ничего не знает про модель ру слов, и наоборот... Или создавать свою модель фильтрации, где реализовать это сопоставление-по другому я сейчас не представляю...)
Добавлено через 19 минут пока курил, еще вариант такой пришел : -фильтруем QSortFilterProxyModel моделью первый список (англ) -теперь в первом представлении QListView будут только нужные нам англ.слова -получаем из представления QListView англ.слов список нужных англ. слов -переписываем из QMap<англ, ру> где ключем будет англ.слово из отфильтрованного списка, в список русских слов в отдельный QStringList -ставим этот список setStringList() в обычную QStringListModel списка два (ру)
0
|
459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
|
29.01.2022, 17:56 [ТС] | 7 |
Да, верно.
Да, это может сработать. Надо будет попробовать. Вообще же прихожу к выводу, что ошибся с выбором интерфейса. Можно было бы сделать просто QTableView и QLineEditами вместо заголовков, но я помню, как работал над этим Джон Кофи...
0
|
1072 / 678 / 182
Регистрация: 30.03.2021
Сообщений: 2,120
|
||||||
29.01.2022, 18:37 | 8 | |||||
Ender Che, вот такой вариант есть, но чет неполадки с регуляркой, курю мануалы, но может быстрее подскажете где моя ошибка?
0
|
459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
|
29.01.2022, 18:49 [ТС] | 9 |
Вот, только на другом ресурсе: https://evileg.com/ru/forum/topic/1408/ Здесь тем в разы больше даже на хабе C++ Qt
0
|
1072 / 678 / 182
Регистрация: 30.03.2021
Сообщений: 2,120
|
|
29.01.2022, 18:52 | 10 |
Ender Che, я понял что регулярку непрально написал, подскажите как написать чтобы выбирало из строки определенные слова? За ссылку спс)
0
|
459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
|
29.01.2022, 19:01 [ТС] | 11 |
Так в первом случае она меняется "на лету", а во втором случае const QString &pattern.
Добавлено через 8 минут Доползу до работы в понедельник, может что и наваяю. У меня там хороший пример с регулярками лежит, а дома его нет. Если другие участники форума не помогут. Так-то я с регулярками на "вы", никак они у меня в голове не укладываются. Вроде синусов с косинусами.))
0
|
1072 / 678 / 182
Регистрация: 30.03.2021
Сообщений: 2,120
|
|
29.01.2022, 19:05 | 12 |
сорри я неулавливаю разницы...
вобщем я загруз на регулярке получаю список/ или строку нужных слов теперь надо отфильтровать модель регуляркой что бы вывела слова только из этого списка, но... ушел кароче читать регексп Добавлено через 3 минуты +100500, вроде вот [abc] это фраза из либо а, либо b. либо с , тоесть abc bca cba и так далее? вопщем, ушел учиться
0
|
459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
|
29.01.2022, 19:05 [ТС] | 13 |
Возможно, я тоже что-то неправильно объясняю... Попробуйте вначале присвоить переменной результаты преобразования trimmed(), а потом подставить эту переменную в setFilterRegExp().
0
|
1072 / 678 / 182
Регистрация: 30.03.2021
Сообщений: 2,120
|
|
29.01.2022, 19:10 | 14 |
Ender Che, я уже как только не пробовал, и [abc | vfh | eyhh ] и без обрезки, но это все такое, надо концептуально понять
Добавлено через 1 минуту (С) Стругацкие : "...шлифуются новички..."
0
|
459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
|
29.01.2022, 19:12 [ТС] | 15 |
1
|
1072 / 678 / 182
Регистрация: 30.03.2021
Сообщений: 2,120
|
||||||
29.01.2022, 19:24 | 16 | |||||
о! вот так вроде работает спасибо! щас составление строки наваяю и попробую)))
Добавлено через 7 минут вот так на скорую руку, теперь допилить немного и (С) Стругацкие: "...сумму прописью..." Не по теме: (чет "Пикник на обочине" в голову засел :) )
0
|
459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
|
29.01.2022, 19:27 [ТС] | 17 |
1
|
1072 / 678 / 182
Регистрация: 30.03.2021
Сообщений: 2,120
|
|
29.01.2022, 19:31 | 18 |
0
|
459 / 357 / 69
Регистрация: 29.05.2018
Сообщений: 1,052
|
|
29.01.2022, 19:33 [ТС] | 19 |
0
|
1072 / 678 / 182
Регистрация: 30.03.2021
Сообщений: 2,120
|
|
29.01.2022, 19:41 | 20 |
а чем аргументировали? бросьте им std::for_each прямо в лицо
Добавлено через 1 минуту а сверху еше навалите итераторов в стиле java и в стиле std ))))
0
|
29.01.2022, 19:41 | |
29.01.2022, 19:41 | |
Помогаю со студенческими работами здесь
20
WPF+XNA метод texture.SetData Как правильно переопределить метод SetData? как правильно переопределить метод SetData QSqlTableModel. SetData - не вставляет незаполненные строки в таблицу Переопределить метод setData() QSqlQueryModel, что бы изменять цвет текста Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |