Вытащить индекс из модели для мапера |
Здравствуйте, гость ( Вход | Регистрация )
Вытащить индекс из модели для мапера |
JohnZ |
3.7.2015, 13:28
Сообщение
#1
|
Участник Группа: Участник Сообщений: 139 Регистрация: 19.7.2014 Пользователь №: 4190 Спасибо сказали: 10 раз(а) Репутация: 0 |
Есть модель QSqlTableModel, указатель на неё передаётся в диалог.
В диалоге создаём мапер, которому (как оказалось) кроме модели нужен ещё и индекс записи (хотя он-же должен находиться в модели ? ) dataMapper = new QDataWidgetMapper(this); // this это QDialog dataMapper->setModel(model); dataMapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit); // dataMapper->setCurrentModelIndex(model->index( ??? )); <--- что тут поставить ??? dataMapper->addMapping(ui.salary, model->fieldIndex("zrp")); И второй вопрос, - можно-ли смапировать QComboBox на int-овое поле ? Если да, покажите код, плз ... Заранее благодарен за помощь. Сообщение отредактировал JohnZ - 3.7.2015, 13:29 |
|
|
lanz |
8.7.2015, 23:29
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Цитата Дык это я у модели хотел спросить, какую строку она отображает, что-бы с неё взять ключ и по нему заполнить диалог... Модель не отображает никакой строки. Конкретная строка отображается именно во вью, в данном случае QWidgetMapper. QWidgetMapper же и отвечает за заполнение подотчетного виджета. Какая строка конкретно выделена для этого диалога можно спросить у того вью, в котором выделяются строки и потом сделать setCurrentIndex() на нее. Цитата Нужно что-бы в зависимости от значения поля в БД QComboBox сам выбирал нужную строку, по номеру, типа switch-а ? Это автоматически делает QWidgetMapper. |
|
|
Текстовая версия | Сейчас: 24.11.2024, 14:55 |