Анимация в GtkTreeView

Модератор: Модераторы разделов

Аватара пользователя
daa
Сообщения: 23
ОС: Fedora

Анимация в GtkTreeView

Сообщение daa »

Привет всем!
У меня следующая проблема:
Я пытаюсь отобразить анимацию в одной строке GtkTreeView с использованием GtkCellRendererPixbuf. В качестве модели использую GtkListStore. Проблема в том, что анимация очень сильно нагружает процессор.
Для одного шага анимации я использую следующий код:

Код: Выделить всё

     angle += PIXMAP_ROTATE_STEP;
     rotated_pixbuf = pixmap_rotate (original_pixbuf, angle);

     gtk_list_store_set (GTK_LIST_STORE (tree_model), &iter,
             FILE_LIST_COL_FILE_ICON, rotated_pixbuf,
             -1);

этот код выполняется в callback функции установленной с помощью g_timeout_add.
Получаю следующие результаты загрузки процессора:
cpu = 100% interval = 50ms PIXMAP_ROTATE_STEP = 0.1f,
cpu = 50% interval = 100ms PIXMAP_ROTATE_STEP = 0.1f,
cpu = 40% interval = 200ms PIXMAP_ROTATE_STEP = 0.3f - выглядит ужасно

Если закомментировать функцию gtk_list_store_set - то загрузка процессора составляет 0%
Как можно решить эту проблему? Возможно существует GtkCellRenderer для воспроизведении анимации или стоит использовать другу модель для GtkTreeView?
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: Анимация в GtkTreeView

Сообщение d_n_k »

попробуй написать свой cell-rendrer и в нем крути изображение

http://www.async.com.br/faq/pygtk/index.py...e=faq13.041.htp
все сказанное есть имхо...
Спасибо сказали:
Аватара пользователя
daa
Сообщения: 23
ОС: Fedora

Re: Анимация в GtkTreeView

Сообщение daa »

Спасибо, я так и сделал, все работает нормально! CPU Load = 0%
Спасибо сказали: