qt - 用于旋转 QWidget 的 QPropertyAnimation
问题描述
我是 Qt 的新手,我在QWidget
旋转时遇到了一些问题。
我在 QLabel 中有一个 QPixmap。我想要的是让它连续旋转 90 度。
我知道QPropertyAnimation
并且我知道如何使用它,但我正在努力解决如何使用它来旋转QWidget
. 有没有什么简单的方法可以实现我的目标并用动画旋转整个QLabel
或内部?QPixmap
谢谢你。
解决方案
这是QLabel/QPixmap
动画旋转的演示。没有必要使用QPropertyAnimation
. QLabel
因为or没有旋转属性QPixmap
。所以使用QVariantAnimation
make QPixmap
rotate 作为动画并使用QPixmap::transformed来旋转它。如果你想很好地控制像素图的动画,强烈推荐QGraphicsPixmapItem与QPropertyAnimation
class RotateMe : public QLabel {
Q_OBJECT
public:
explicit RotateMe(QWidget* parent = Q_NULLPTR) :
QLabel(parent),
pixmap(100, 100),
animation(new QVariantAnimation )
{
resize(200, 200);
pixmap.fill(Qt::red);
animation->setDuration(10000);
animation->setStartValue(0.0f);
animation->setEndValue(90.0f);
connect(animation, &QVariantAnimation::valueChanged, [=](const QVariant &value){
qDebug()<<value;
QTransform t;
t.rotate(value.toReal());
setPixmap(pixmap.transformed(t));
});
animation->start();
}
private:
QPixmap pixmap;
QVariantAnimation *animation;
};
推荐阅读
- bash - bash - 将可选参数传递给脚本 - 参数名 + 字符串值
- java - 在整数索引 POI Java 中翻译字母(字符)索引
- android - HTTP 请求查询:我可以通过 HTTP 请求发送视频吗?并发送回 json 数据和图像?
- c# - ManagementBaseObject 和 ManagementObject 给出不同的 DeviceId
- powershell - 需要匹配2个CSV文件中的字段,然后根据一个字段的内容,返回另一个字段
- powerbi - Power BI:假设条件参数中的筛选器
- qnx - 用户如何调用超级用户命令?
- c# - C# asp.net 检查文本框是否包含空格
- azure - 通过 API 管理访问本地 API 的推荐方式,无需高级或开发人员层
- flutter - Flutter:如何更改 showTimePicker 小部件的颜色