Q动画无法正常工作
QPropertyAnimation not functioning
我的动画在这个QPushButton上没有按照我期望的方式工作。
这是我的主窗口.cpp,因为您在这里看不到任何特别奇怪的东西。在运行时,按钮按预期显示。我脑子里没有任何特别的动作。我只是想看看我是否正确设置了所有内容。就像现在的情况一样,按钮不会增长或移动。奇怪的是,如果我注释掉 setShape.start((,它会默认恢复为 UI 文件中指定的大小。
到目前为止,我唯一的猜测是,我的 MainWindow 对象在其构造函数(包含动画(运行完之前不会显示。如果是这种情况,我想知道我能做些什么来解决这个问题。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLabel>
#include <QPushButton>
#include <QPropertyAnimation>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPropertyAnimation setShape(ui->pushButton, "geometry");
setShape.setDuration(1000);
setShape.setStartValue(QRect(500,300,500,500));
setShape.setEndValue(QRect(800,400,500,500));
setShape.start();
}
MainWindow::~MainWindow()
{
delete ui;
}
这是我的主要内容.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QPropertyAnimation>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
这几乎是一个基本的动画,所以我希望我的直觉是正确的,或者我犯了一个愚蠢的错误。无论哪种方式,任何帮助都将不胜感激。
局部变量在完成执行其作用域后被删除,这就是 setShape 发生的情况,当构造函数完成执行时它被消除,您所要做的就是创建一个指针以便维护它并建立销毁策略以DeleteWhenStopped
:
QPropertyAnimation *setShape = new QPropertyAnimation(ui->pushButton, "geometry");
setShape->setDuration(1000);
setShape->setStartValue(QRect(500,300,500,500));
setShape->setEndValue(QRect(800,400,500,500));
setShape->start(QPropertyAnimation::DeleteWhenStopped);
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 为什么STD ::计数将常数传递给Lambda,而不是在弦上工作时而不是字符
- sdl软件渲染器不工作,工作在硬件加速的一个
- C++程序已停止工作-求解常微分方程