Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Модель/Представление _ Анимация в TableView..

Автор: kibsoft 10.3.2010, 22:52

Есть делегат,в методе paint которого вызывается drawImage для отрисовки картинки,но можно ли как-нибудь отображать анимацию в представлении?

Автор: igor_bogomolov 10.3.2010, 23:32

В качестве вариантов:

1. Написать делегат, в качестве виджета-редактора использовать QLabel+QMovie, которые и будут отображать анимированную картинку. Что бы анимация была видна использовать

Цитата
void QAbstractItemView::openPersistentEditor ( const QModelIndex & index )

2. Если в качестве обновления необходимо использовать паинт делегата, то можно попробовать по таймеру менять значение этой ячейки, что в свою очередь должно приводить к перерисовки ячейки.

Автор: kibsoft 11.3.2010, 15:40

Цитата(igor_bogomolov @ 11.3.2010, 0:32) *
В качестве вариантов:

1. Написать делегат, в качестве виджета-редактора использовать QLabel+QMovie, которые и будут отображать анимированную картинку. Что бы анимация была видна использовать
Цитата
void QAbstractItemView::openPersistentEditor ( const QModelIndex & index )

2. Если в качестве обновления необходимо использовать паинт делегата, то можно попробовать по таймеру менять значение этой ячейки, что в свою очередь должно приводить к перерисовки ячейки.



Спасибо! Первое думаю разумней..

Автор: kibsoft 11.3.2010, 16:10

Только я не пойму последовательность действий.. в setEditorData в делегате создать QLabel и QMovie, а когда вызывать openPersistentEditor?
Да и как вообще картинки добавлять, через paint же уже не пойдет..

Автор: kibsoft 11.3.2010, 16:54

Кажется нарыл нужное в доке, потом отпишусь :)

Автор: kibsoft 12.3.2010, 17:51

В делегате нужно было переопределить метод createEditor, т.е. создать в нем нужный виджет, проделать нужные действия над ним и возвратить его. И в проге вызывать openPersistentEditor для нужной ячейки.
Спасибо igor_bogomolov'у за подсказку :)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)