Как создать собственную текстовую (глиф) анимацию с помощью Qt

Я хочу сделать динамическую текстовую анимацию с Qt для арабского и персидского текстов? Вы можете мне помочь? Вы можете увидеть пример того, что мне нужно.

Образец доверия

неправильный образец

1 ответ

Я предлагаю использовать следующие классы: QGraphicsScene а также QGraphicsView обрабатывать и отображать вашу графику, QGraphicsTextItem отображать каждый символ, QGraphicsItemAnimation оживить персонажей.

Я не знаю, как именно действует пример, который вы разместили, и какие преобразования применяются. Я написал простой пример. Здесь начальное вращение и перемещение каждого элемента устанавливаются случайным образом, а конечные позиции не преобразуются.

QString text = "test";
int current_width = 0;
QFont font("", 30);
QTimeLine *timeline = new QTimeLine(2000);
foreach(QChar c, text) {
  QGraphicsTextItem* item = scene.addText(c);
  item->setFont(font);
  item->adjustSize();
  item->setPos(current_width, 0);
  current_width += item->textWidth();
  QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
  animation->setItem(item);
  animation->setTimeLine(timeline);
  animation->setRotationAt(0, 360.0 * rand() / RAND_MAX);
  animation->setTranslationAt(0, 100 * rand() / RAND_MAX,
                                 100 * rand() / RAND_MAX);
  animation->setRotationAt(1, 0);
  animation->setTranslationAt(1, 0, 0);
}
ui.graphicsView->setScene(&scene);
timeline->start();
Другие вопросы по тегам