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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Анимация в QTableWidget  (Прочитано 2973 раз)
qtист
Гость
« : Ноябрь 11, 2009, 12:40 »

создал делегат:

Код
C++ (Qt)
class LabelDelegate : public QItemDelegate
{
   Q_OBJECT
 
public:
   LabelDelegate(QObject *parent);
 
   QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
                         const QModelIndex &index) const;
 
   void updateEditorGeometry(QWidget *editor,
       const QStyleOptionViewItem &option, const QModelIndex &index) const;
 
  ~LabelDelegate();
 
public:
QMovie *mov;
 
};
 
LabelDelegate::LabelDelegate(QObject *parent)
   : QItemDelegate(parent)
{
   mov=new QMovie(":/Resources/09oiuk.gif");
}
 
 
QWidget *LabelDelegate::createEditor(QWidget *parent,
   const QStyleOptionViewItem &/* option */,
   const QModelIndex &  index ) const
{
  QLabel  *editor = new  QLabel(parent);
 
  editor->setMovie(mov);
  mov->setSpeed(30);
 
   return editor;
}
 
void LabelDelegate::updateEditorGeometry(QWidget *editor,
   const QStyleOptionViewItem &option, const QModelIndex &/* index */) const
{
   editor->setGeometry(option.rect);
   mov->setScaledSize(QSize(option.rect.width(),option.rect.height()));
  mov->start();
}
 
 
LabelDelegate::~LabelDelegate()
{
 
}

Подключил его в некоторую ячейку таблицы - всё работает,всё зашибись!

Надо в некоторый момент времени убрать эту анимацию из определённой ячейки.
Чё-то никак не могу Плачущий
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #1 : Ноябрь 11, 2009, 12:59 »

надо сказать модели Submit - или во вьюхе перейти к другой ячейке - тогда экземпляр эдитора в делегате должен удалиться и пропадет ваша анимация
Записан
qtист
Гость
« Ответ #2 : Ноябрь 11, 2009, 13:57 »

Цитировать
надо сказать модели Submit

как это?
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #3 : Ноябрь 11, 2009, 15:47 »

submit - это метод подтверждающий редактирование данных в модели (если установлена политика onManualSubmit) - но это для наследников SQLQueryModel - у вас модель какая?
а второй способ пробовали - через метод вьюва setCurrentIndex ?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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