QGraphicsProxyWidget не работает анимация

Я пытаюсь выполнить некоторые анимации, используя QGraphicsProxyWidget, но не вижу применений. Например, если я хочу просто повернуть QGraphicsTextItem, этот код работает:

      QGraphicsView *view_ = new QGraphicsView(this);
QGraphicsScene *scene_ = new QGraphicsScene(view);
QGraphicsTextItem *text_item_ = new QGraphicsTextItem("This is some sample text to\ntest if we can rotate the\nimage correctly");
scene_->addItem(text_item_);
text_item_->rotate(180);
view->setScene(scene_);

Однако, похоже, это ничего не делает:

      QLabel* label =  new QLabel(this);
label->setText("This is some sample text to\ntest if we can rotate the\nimage correctly");
QGraphicsView *view_ = new QGraphicsView(this);
QGraphicsScene *scene_ = new QGraphicsScene(view);
QGraphicsProxyWidget *proxy_widget_ = new QGraphicsProxyWidget();
proxy_widget_->setWidget(label);
scene_->addItem(proxy_widget__);
proxy_widget_->rotate(180);
view->setScene(scene_);

И не делает это так:

QGraphicsProxyWidget *proxy_widget_ = scene_->addWidget(label).

Какие-либо предложения?

0

Решение

Ваш код добавляет виджет прокси и звонки: —

proxy_widget->rotate(180);

Если вы посмотрите на QGraphicsProxyWidget документацию, вы увидите, что он наследует от QGraphicsItem и что вы должны вызвать функцию setRotation

proxy_widget->setRotation(180);
0

Другие решения

Спасибо, Мерлин. Разобрался с проблемой. Если вы удалите родительские элементы из QLabel, это сработает.

Так что измени это:

QLabel* label =  new QLabel(this);

К этому:

QLabel* label =  new QLabel();
0

По вопросам рекламы [email protected]