crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Анимация в QTextEdit
kibsoft
  опции профиля:
сообщение 19.3.2010, 19:03
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


Нужно вставить gif файл в QTextEdit, чтобы воспроизводилась анимация, insertImage и явная вставка HTML не помогает - вставляется статическая картинка. Можно ли как нибудь тогда в QTextEdit вставить в нужных местах QLabel с установленным QMovie? Если да, то как это сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kibsoft
  опции профиля:
сообщение 21.3.2010, 13:29
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


Может быть кто-то не понял к чему в предыдущем посте я писал про QTextBrowser - просто в приложении он у меня тоже есть. А вот что я накопал в кэше гугла на qtcentre(странно, но на в qtcenter wiki страница не находится, а в кэше гугла сохранилась. Слава ГУГЛУ!), привожу код:
// main.cpp
#include <QtGui>

class AnimatedTextEdit : public QTextEdit
{
    Q_OBJECT

public:
    AnimatedTextEdit(QWidget* parent = 0)
        : QTextEdit(parent) { }

    void addAnimation(const QUrl& url, const QString& fileName)
    {
        QMovie* movie = new QMovie(this);
        movie->setFileName(fileName);
        urls.insert(movie, url);
        connect(movie, SIGNAL(frameChanged(int)), this, SLOT(animate()));
        movie->start();
    }

private slots:
    void animate()
    {
        if (QMovie* movie = qobject_cast<QMovie*>(sender()))
        {
            document()->addResource(QTextDocument::ImageResource,
                urls.value(movie), movie->currentPixmap());
            setLineWrapColumnOrWidth(lineWrapColumnOrWidth()); // causes reload
        }
    }

private:
    QHash<QMovie*, QUrl> urls;
};

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    AnimatedTextEdit textEdit;
    textEdit.setHtml("<img src='bart-url'/><img src='homer-url'/>");
    textEdit.addAnimation(QUrl("bart-url"), "bart.gif");
    textEdit.addAnimation(QUrl("homer-url"), "homer.gif");
    textEdit.show();
    return app.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 21:04