ЮрийҚыр. 1, 2017, 5:14 Т.Қ.
Как остаться на выбранной позиции при обновление данных в comboBox
На форме имеются несколько combobox и при изменении, добавление в справочник данных необходимо обновлять эти combobox. Как остать на выбранной позиции и обновить данные в combobox. Данные берутся из бд mysql/
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
Г
- Геній
- Қыр. 13, 2024, 12:46 Т.Қ.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:66ұпай,
- Бағалау ұпайлары-1
t
- torgaev_2024
- Қыр. 8, 2024, 6:20 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:33ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
ВР
Linux жүйесінде файлдарды қалай көшіруге болады Screenshot_20240802-065123.png
Влад РусоковТам. 2, 2024, 1:47 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCTМаусым 25, 2024, 1 Т.Ж.
BlinCTМамыр 5, 2024, 5:46 Т.Ж.
Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
Что значит остаться на выбранной позиции?
Не видя код, проблематично что-то советовать по этому вопрос. Вопрос ситуативен.
По факту можно ответить так. Когда изменяются данные, кидаете сигнала о том, что данные изменились. В обработчике сигнала работаете с ComboBox`ами и прописываете логику по изменению этих комбобоксов с учётом требований.
Например, есть список:
Заполнение combobox
Я так понимаю, Вы предварительно где-то очищаете данные в ComboBox, а потом уже заново добавляете полный список. Поэтому у Вас и сбивается индекс. Если не удалять данные, то индекс остаётся прежний.
Один из вариантов, которые Вы можете использовать, так это сохранять текущий индекс через метод QComboBox::currentIndex() в некоторую переменную, а потом уже устанавливать индекс заново после добавления списка данных.
А ещё, я мог бы посоветовать Вам использовать модель данных и QDataWidgetMapper . Ведь судя по всему у Вас там некоторая форма ввода используется...
Да я очищаю иначе у меня дублируются записи. При заполнении combobox из модели, как мне потом получить id записи?
У QDataWidgetMapper также есть метод currentIndex() , который вернёт фактически номер строки в модели данных. Этот номер строки можно использовать через QModelIndex и метод модели data() для получения любой информации из строки в модели данных, в том числе и id в базе данных.
Вообще по возможности используйте модели данных. Поначалу, конечно, мороки много, но потом просто милое дело получается. Всё аккуратно и красиво выходит.
Сделал так
Как подключить сигнал?
mapper создали через выделение памяти в куче? то есть через оператор new ?
Если нет, то перед маппером должен быть амперсанд.
Вот так
Ну тогда подключайте сигнал, как показали. Разве только можно в нотации Qt5 его переписать, через указатели.
Хотя, если Вы модель установили прямо в ComboBox, то можно и без маппера обойтись, просто делать update модели, когда добавлены новые данные.
Получается он не посылает сигнал?
Это что-то новенькое... не найден сигнал в модели. dataChanged - это сигнал, который объявлен в QAbstractItemModel.
Не понимаю как добавить в combobox
Проверьте currentText , возможно проблема в том, что property currentIndex имеет перегруженный сигнал currentIndexChanged.
хм. печально, что не заработало, как предполагалось.
Да это понятно. Просто у меня на форме много combobox-ов.
Все сделал. Применил костыли.