Russian Qt Forum
Май 17, 2024, 19:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QSqlTableModel  (Прочитано 16298 раз)
Krow
Гость
« : Август 31, 2007, 08:16 »

На форме есть QTableView, Так же с этой формы идёт вызов другой формы на которой идёт добавление данных в базу данных отражённую в QTableView с первой формы.
Суть вопроса такова, как сделать так чтобы при добавлении данных со второй это автоматически отражалось на первой форме. т.е. происходило что то вроде model->select() если бы это всё происходило на первой форме.
надеюсь я выразился правильно... заране спасибо
Записан
bigirbis
Гость
« Ответ #1 : Август 31, 2007, 09:19 »

ИМХО, единственный вариант:
  • перед вызовом второй формы запомнить текущий индекс,
  • вызвать форму,
  • установить текущий индекс.
Записан
WW
Гость
« Ответ #2 : Август 31, 2007, 10:39 »

Если у тебя вторая форма основана на той же модели, что и TableView - то ничего делать не надо.
Записан
Krow
Гость
« Ответ #3 : Август 31, 2007, 11:09 »

ИМХО, единственный вариант:
  • перед вызовом второй формы запомнить текущий индекс,
  • вызвать форму,
  • установить текущий индекс.

а поподробнее???
Записан
Krow
Гость
« Ответ #4 : Август 31, 2007, 11:11 »

Если у тебя вторая форма основана на той же модели, что и TableView - то ничего делать не надо.
нет, вторая форма это обычный потомок QWidget на котором расположены QLineEdit для добавления данных.
Записан
WW
Гость
« Ответ #5 : Август 31, 2007, 11:17 »

нет, вторая форма это обычный потомок QWidget на котором расположены QLineEdit для добавления данных.
а кто мешает замапить его на ту же модель? потом просто в модели добавил строку программно, дал возможность юзеру заполнить поле. после закрытия формы твое TableView уже будет содержать всю инфу.
Записан
bigirbis
Гость
« Ответ #6 : Август 31, 2007, 11:58 »

Вариант. Но не всегда удачным решением является передача модели...
Записан
Krow
Гость
« Ответ #7 : Август 31, 2007, 14:31 »

нет, вторая форма это обычный потомок QWidget на котором расположены QLineEdit для добавления данных.
а кто мешает замапить его на ту же модель? потом просто в модели добавил строку программно, дал возможность юзеру заполнить поле. после закрытия формы твое TableView уже будет содержать всю инфу.
Всё от пользователя зависит. И от Привычек пользователей. Думал над таким вариантом, но всё же решил на более традиционном способе для пользователей остановиться.
В общем как сделал так думаю будет правильней (с моей точки зрения)

но вопрос не снят...вопрос как можно сделать рефреш из другой формы, не наследовать же вторую форму от первой???
Записан
denka
Гость
« Ответ #8 : Август 31, 2007, 15:04 »

Попробуй QDataWidgetMapper
Записан
Krow
Гость
« Ответ #9 : Август 31, 2007, 15:20 »

Попробуй QDataWidgetMapper
а это что за зверь и с чем его едят?? раньше не сталкивался с этим...
Записан
WW
Гость
« Ответ #10 : Август 31, 2007, 15:24 »

Попробуй QDataWidgetMapper
а это что за зверь и с чем его едят?? раньше не сталкивался с этим...
это как раз и мапит отдельные виджеты на модель.
Записан
Krow
Гость
« Ответ #11 : Август 31, 2007, 16:33 »

Попробуй QDataWidgetMapper
а это что за зверь и с чем его едят?? раньше не сталкивался с этим...
это как раз и мапит отдельные виджеты на модель.
что то значит мапит? Я ж говорю я с этим не связывался ещё...
Записан
denka
Гость
« Ответ #12 : Август 31, 2007, 16:51 »

Читаем Assistant:
Цитировать
The QDataWidgetMapper class provides mapping between a section of a data model to widgets.
QDataWidgetMapper can be used to create data-aware widgets by mapping them to sections of an item model. A section is a column of a model if the orientation is horizontal (the default), otherwise a row.
Every time the current index changes, all widgets are updated with the contents from the model. If the user edits the contents of the widget, the changes are written back to the model.
То есть данный класс отображает определенную секцию модели в конкретный виджет. При изменении текущего индекса все виджеты в которые происходит отображение будут обновлены из модели. А при изменении данных в виджете они(данные) будут заноситься в модель. А вобще думаю все таки для начало не мешало бы тебе заглянуть в Assistant:)
Записан
Krow
Гость
« Ответ #13 : Август 31, 2007, 17:21 »

den'ka спасиб за разъяснение.
я глянул в асисстант )) но толкм не понял поэтому решил спросить как это звучит по русски Улыбающийся))
Записан
-QT-
Гость
« Ответ #14 : Сентябрь 03, 2007, 15:38 »

Скажите а это для всех моделей работает ?
Я на самописной модели пытался применить вот так:

Код:
   QDataWidgetMapper *mapper = new QDataWidgetMapper();
    mapper->setModel(model);
    mapper->addMapping(lineEditNameJob, 0);
    mapper->addMapping(spinBoxPlanDay, 2);
    mapper->toFirst();

Результата никакого ни ошибок ни отображения  В замешательстве
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.085 секунд. Запросов: 20.