gpt4 book ai didi

c++ - Qt Animate QPushButton 图标

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:55 26 4
gpt4 key购买 nike

我想对 QPushButton 图标的大小进行动画处理,因为当我尝试对整个 QPushButton 对象大小进行动画处理时,图标根本没有调整大小。 QPushButton 图标上似乎没有属性“setScaledContents”。我尝试在自定义 QPushButton 方法(悬停时)中将此代码用于图标:

QIcon *icon = new QIcon(this->icon());
QPropertyAnimation *animation = new QPropertyAnimation((QObject*)icon, "size");
animation->setDuration(1000);
QSize test = this->size();
animation->setStartValue(test);

animation->setEndValue(QSize(test.width()+100,test.height()+100));

animation->start();

但是我收到关于此代码的错误“分段失败”。有没有其他方法可以让我的 QPushButton 图标动起来?

最佳答案

您需要做的是传递对 QObject (per Chris' comment above) 的有效引用

如果我简单地替换传递给 QPropertyAnimation 的参数,您的代码就可以正常工作:

// ui->pushButton is a QPushButton*
QPropertyAnimation *animation = new QPropertyAnimation(ui->pushButton, "size");
animation->setDuration(1000);
QSize test = this->size();
animation->setStartValue(test);
animation->setEndValue(QSize(test.width()+100,test.height()+100));
animation->start();

我假设您正在子类化 QPushButton(解释 this->icon())...也许您可以尝试直接访问它?尽管我猜测它是由基类/父类私有(private)的。

关于c++ - Qt Animate QPushButton 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17838989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com