QGraphicsProxyWidget 动画不工作
QGraphicsProxyWidget animations not working
我正在尝试使用 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).
有什么建议吗?
您的代码添加代理小部件并调用:-
proxy_widget->rotate(180);
如果你看 QGraphicsProxyWidget documentation, you'll see that it inherits from QGraphicsItem and that you should call the function setRotation
proxy_widget->setRotation(180);
谢谢梅林。想通了这个问题。如果您从 QLabel 中删除父子关系,它就可以工作。
所以改变这个:
QLabel* label = new QLabel(this);
为此:
QLabel* label = new QLabel();
我正在尝试使用 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).
有什么建议吗?
您的代码添加代理小部件并调用:-
proxy_widget->rotate(180);
如果你看 QGraphicsProxyWidget documentation, you'll see that it inherits from QGraphicsItem and that you should call the function setRotation
proxy_widget->setRotation(180);
谢谢梅林。想通了这个问题。如果您从 QLabel 中删除父子关系,它就可以工作。
所以改变这个:
QLabel* label = new QLabel(this);
为此:
QLabel* label = new QLabel();