Название: как обновить tableView из другого окна Отправлено: sergun1604 от Сентябрь 30, 2010, 13:44 Отцы подскажите пожалуйста как обновить эту штуковину из другого окна. Данные в этом другом окне заносятся в базу. Но вьювка которая отображает находится в родительском окне? С ума уже сошел неделю голову ломаю
Название: Re: как обновить tableView из другого окна Отправлено: crossly от Сентябрь 30, 2010, 13:57 больше инфы.... данные пишутся на прямую в базу или в модель которую вью отображает??
Название: Re: как обновить tableView из другого окна Отправлено: sergun1604 от Сентябрь 30, 2010, 14:08 Напрямую в базу из дочернего окна через QSqlQueryModel
Название: Re: как обновить tableView из другого окна Отправлено: RedDog от Сентябрь 30, 2010, 14:33 сигналы и слоты для чего придуманы?
Название: Re: как обновить tableView из другого окна Отправлено: RVZ от Сентябрь 30, 2010, 14:45 Я столкнулся с такой же проблемой!
Решил ее добавлением слота к классу в котором tableView отрисовывается и добавлением сигнала к классу где происходят изменения на основе которых tableView надо обновлять и соединил их (можно свой сигнал к tableView подключить у меня просто еще параметр подшаманить надо было) По моему это типа протез но на первое время подойдет Название: Re: как обновить tableView из другого окна Отправлено: sergun1604 от Сентябрь 30, 2010, 15:14 спасибо rvz за содержательный ответ, не можете тогда подсказать как мне этот сигнал оформить (как слот сделать я понимаю, но вот сигналами обычно стандартными пользовался).
Название: Re: как обновить tableView из другого окна Отправлено: sergun1604 от Сентябрь 30, 2010, 15:16 RedDog я же в теме "вопросы новичков" дофига еще не понимаю поэтому сюда и написал. Поэтому к Отцам с поклоном...
Название: Re: как обновить tableView из другого окна Отправлено: crossly от Сентябрь 30, 2010, 15:20 Напрямую в базу из дочернего окна через QSqlQueryModel вы хоть сами то поняли... :).... в общем после того как записали в базу нужно обновить модель которую отображает tableViewНазвание: Re: как обновить tableView из другого окна Отправлено: sergun1604 от Сентябрь 30, 2010, 15:55 crossly я это понимаю вопрос как, вместо реплик просто помогите примером.
Название: Re: как обновить tableView из другого окна Отправлено: Vanoor от Сентябрь 30, 2010, 18:12 по моему все достаточно просто если я все правильно понял. Если вам нужно по сигналу из дочернего окна обновить таблевью в родительском. То это тупа сигнал слот.
В дочерем окне вы создаете ваш сигнал, который будете испускать каждый раз когда заносите данные в базу из дочернего окна. А в родительском окне, там где вы создаете объект дочернего окна, сразу же привязываете конект. Например: mydialog.h: Код: ... mydialog.cpp Код: ... parentwindow.cpp Код: ... блин как то так я думаю Название: Re: как обновить tableView из другого окна Отправлено: sergun1604 от Октябрь 01, 2010, 08:19 хорошо попробую отпишусь!!!!!
Название: Re: как обновить tableView из другого окна Отправлено: voronElf от Октябрь 01, 2010, 08:31 Vanoor правильно написал, кроме одного (о чем написал crossly), обновлять нужно не tableView, а модель, которая поставляет данные в эту вьюху. коннектить сигнал можно прям к самой модели.
Название: Re: как обновить tableView из другого окна Отправлено: sergun1604 от Октябрь 01, 2010, 08:51 Ребята спасибо вам большое а то я в трех соснах заблудился, понимал что надо както с сигналами работать по примеру последнего сделал и все пошло.
вот мой код (вдруг кому интересно) kol.h Код: signals: kol.cpp Код: void kol::addWrem() //кнопка добавить к позиции nomen.h Код: public slots: nomen.cpp void nomen::SelectTow() //выбираем товар в таблице 2 Код: { Код: void nomen::nom() Успехов всем в освоении qt это будущее ближайших лет!!!!!! Название: Re: как обновить tableView из другого окна Отправлено: voronElf от Октябрь 01, 2010, 09:53 хорошо, суть понял, только вот в слоте с моделью жестоко как то ))
старая модель в памяти остается (100 редактирований => 100 старых объектов сидит в памяти и не используется) лучше вообще не менять модель: Код: void nomen::nom() ну нужно быть уверенным конечно, что вьюхе была ранее выставлена именно QSqlQueryModel |