crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Вопросы по примеру staffmanager из книги Бланшет "Qt 4. Программирование GUI на C++"
Steklova Olga
  опции профиля:
сообщение 22.5.2013, 13:43
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Добрый день :)
Запускаю пример staffmanager из главы 13 книги Бланшет "Qt 4. Программирование GUI на C++", изд.2.
Хочу добавить в БД новый Department и Employees для этого нового Department.
Нажимаю кнопку "Add Dept", в табл Departments появляется пустая строка, помеченная "*", ввожу данные в эту строку.
А дальше что делать? Или код этого примера не позволяет это сделать?

Добавлено 22.05.2013 16:50
При добавлении данных предполагаю, что результат добавления должен быть виден на экране и вноситься в БД.
А, запуская пример, я этого не вижу.
Или этот пример не дописан в книге в части редактирования таблицы Departments ?

Сообщение отредактировал Steklova Olga - 22.5.2013, 15:51
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Анна
  опции профиля:
сообщение 31.5.2013, 12:13
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 276
Регистрация: 22.5.2008
Из: Зеленоград
Пользователь №: 181

Спасибо сказали: 30 раз(а)




Репутация:   4  


Цитата(Steklova Olga @ 31.5.2013, 10:02) *
Я думаю, чтобы не мучиться с обработкой каждой мелочи, делая редактирование таблиц БД прямо в TableView,
взять и сделать TableView нередактируемым, сделать разные контролы для полей таблицы, кнопки подтверждения и отката изменений в текущей записи, добавления и удаления записи, при нажатии кнопок обработать разные ситуации.
Так у меня будет меньше проблем? Для оператора все станет яснее? Как вы считаете?

Да.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Steklova Olga
  опции профиля:
сообщение 31.5.2013, 13:01
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Цитата(Анна @ 31.5.2013, 12:13) *
Да.
хорошо

Цитата(Steklova Olga @ 31.5.2013, 9:02) *
сделать разные контролы для полей таблицы
если эти контролы подключить к QDataWidgetMapper, у которого установить
mapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
(это я смотрю пример chap18/db04 из книги Земскова "Qt4 на примерах" )
то, запуская пример, вижу, что этот автоматический submit mapper'а тоже работает кривовато...

Т.е., правильно я понимаю?, что при QDataWidgetMapper::AutoSubmit,
если оператор установит фокус на какой-то контрол маппера, откорректирует в нем значение,
то это значение автоматически засабмитится в маппер, только когда оператор установит фокус на другой контрол маппера. К тому же, от момента корректировки значения до этой смены фокуса оператор не должен менять текущую строку в модели.

Так, может, тогда лучше сделать ручной сабмит не только модели
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
но и мапперу?
mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
И по кнопке подтверждения изменения текущей записи вручную сабмитить сначала маппер, а потом модель?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Steklova Olga   Вопросы по примеру staffmanager из книги Бланшет "Qt 4. Программирование GUI на C++"   22.5.2013, 13:43
- - Steklova Olga   Вот код примера staffmanager из главы 13 книги Бла...   22.5.2013, 14:44
- - lanz   Вроде все в порядке. Как только фокус потеряется, ...   22.5.2013, 15:03
- - Steklova Olga   Отредактировала первое сообщение.   22.5.2013, 15:55
- - Steklova Olga   Цитата(lanz @ 22.5.2013, 15:03) Как тольк...   29.5.2013, 13:57
|- - Steklova Olga   Может, в примере где-нибудь пропущен этот вызов? ...   30.5.2013, 16:34
- - Litkevich Yuriy   Цитата(Steklova Olga @ 22.5.2013, 15:43) ...   30.5.2013, 16:58
- - Steklova Olga   Цитата(Litkevich Yuriy @ 30.5.2013, 16:58...   30.5.2013, 18:24
- - Litkevich Yuriy   Цитата(Steklova Olga @ 30.5.2013, 20:24) ...   30.5.2013, 21:33
- - Steklova Olga   Цитата(Litkevich Yuriy @ 30.5.2013, 21:33...   31.5.2013, 9:02
- - Анна   Цитата(Steklova Olga @ 31.5.2013, 10:02) ...   31.5.2013, 12:13
|- - Steklova Olga   Цитата(Анна @ 31.5.2013, 12:13) Да.хорошо...   31.5.2013, 13:01
- - Litkevich Yuriy   Мапер решение специфическое, он живёт своей жизнью...   31.5.2013, 13:11
- - Steklova Olga   Цитата(Litkevich Yuriy @ 30.5.2013, 21:33...   31.5.2013, 14:08
- - Litkevich Yuriy   Steklova Olga, а как настроены модель и Мапер (реж...   31.5.2013, 15:09
- - Steklova Olga   Цитата(Litkevich Yuriy @ 31.5.2013, 15:09...   31.5.2013, 15:18
- - Steklova Olga   Поменяла для себя в коде примера драйвер на QIBASE...   31.5.2013, 15:50
- - Litkevich Yuriy   Цитата(Steklova Olga @ 31.5.2013, 17:50) ...   31.5.2013, 16:13
- - Steklova Olga   Цитата(Litkevich Yuriy @ 31.5.2013, 16:13...   31.5.2013, 17:02
- - Steklova Olga   Начала проверять разные ветки алгоритма работы опе...   31.5.2013, 17:52
- - Litkevich Yuriy   Цитата(Steklova Olga @ 31.5.2013, 19:52) ...   31.5.2013, 19:33
- - Steklova Olga   Цитата(Litkevich Yuriy @ 31.5.2013, 19:33...   3.6.2013, 10:36
- - Litkevich Yuriy   Цитата(Steklova Olga @ 3.6.2013, 12:36) т...   3.6.2013, 18:49


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 5.12.2024, 0:44