Название: QAbstractItemModel обновить данные в отображении Отправлено: boobsik от Август 15, 2009, 19:06 унаследовал QAbstractItemModel.. я изменил данные в элементе, который соответствует ряду(row), как обновить данные в компоненте, который отображает данные? в данном случае компонент QTreeView.. (присоединил модель с помощью setModel(QAbstractItemModel* model))
Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: Rcus от Август 15, 2009, 19:10 А документацию по моделям уже читали? И пропустили описания сигналов? Советую вернуться и дочитать.
Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: boobsik от Август 15, 2009, 19:16 а разве отображение само не коннектит сигнал обновления? при установке новой модели?
Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: Rcus от Август 15, 2009, 19:24 /*sigh*/ Коннектит, но вы используете своего наследника QAbstractItemModel, а потому и вызов сигнала dataChanged нужно самому писать.
P.S. ушел. Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: boobsik от Август 15, 2009, 19:28 dataChanged не виртуальный сигнал, смысл писать свой? сорри, понял) спасибо!)
Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: f-r-o-s-t от Август 15, 2009, 19:35 вызов сигнала dataChanged нужно самому писать. dataChanged не виртуальный сигнал, смысл писать свой? Писать и вызывать разные вещи. Попробуй emit dataChanged... Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: boobsik от Август 15, 2009, 19:37 я могу сделать emit dataChanged(...) вне компонента?
Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: f-r-o-s-t от Август 15, 2009, 19:40 я могу сделать emit dataChanged(...) вне компонента? Нет... а что компонента сама не знает что её меняют ?=) Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: boobsik от Август 15, 2009, 20:36 ну допустим модель данных незнает) меняю только обьект отвечающий за ряд(row).. и как будет выглядеть фунция, которая эмитит dataChange внутри унаследованного от QAbstractItemModel класса? Нужна функция update, которая обновляет всю модель, но я не понимаю, какие QModelIndex надо в dataChange(...) засунуть?
создал метод в унаследованной модели данных void MLDataModel::update(){ emit dataChanged(index(0,0), index(2,1)); } но после его выполнения добавленный третий ряд в QTreeView не отображается =( Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: BRE от Август 15, 2009, 20:40 но после его выполнения добавленный третий ряд в QTreeView не отображается =( А про эти сигналы QAbstarctItemModel читал? ;)void rowsAboutToBeInserted ( const QModelIndex & parent, int start, int end ) void rowsAboutToBeRemoved ( const QModelIndex & parent, int start, int end ) void rowsInserted ( const QModelIndex & parent, int start, int end ) void rowsRemoved ( const QModelIndex & parent, int start, int end ) Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: f-r-o-s-t от Август 15, 2009, 20:43 Всю модель может и reset обновить =)
А в dataChange(...) надо просто передать место изменения. Простите, но я наверное лучше покину топик =) Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: boobsik от Август 15, 2009, 20:46 алилуя!)) спасибо frost)
Название: Re: QAbstractItemModel обновить данные в отображении Отправлено: f-r-o-s-t от Август 15, 2009, 20:52 алилуя!)) спасибо frost) Я думал тебе надо только место изменения обновить. На здоровье =) |