添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode . Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).

Hello everyone,

I am currently trying to develop a GUI for a desktop application. I am using QPropertyAnimation and QGraphicsOpacityEffect to create moving navigation bars, as well as moving buttons with fade in/out effects.

I get spammed with warnings when I click the buttons to run the animations. This is my first time animating with Qt C++/XML so please bear with me! I am hoping that someone can point me in the right direction. If you notice anything else wrong with the code, please feel free to let me know!

Video Link

[Video](https://i.gyazo.com/ead46927480f02fa908b9efd0dcd615e.mp4)

Specs:

Desktop Qt 6.1.2 MinGW 64-bit - Qt Creator 5.0.1, based on Qt 5.15.2.

Warnings:

QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::restore: Unbalanced save/restore
QPainter::worldTransform: Painter not active
QWidgetEffectSourcePrivate::pixmap: Painter not active

Implementation:

#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    ui->setupUi(this);
    // Page Setup
    ui->groupHome->setGeometry(0,330,1080,1590);
    ui->groupSearch->setGeometry(0,330,1080,1590);
    ui->groupSupply->setGeometry(0,330,1080,1590);
    // Fade Out
    QGraphicsOpacityEffect *effectFadeOut = new QGraphicsOpacityEffect(this);
    ui->groupSearch->setGraphicsEffect(effectFadeOut);
    QPropertyAnimation *animationFadeOut = new QPropertyAnimation(effectFadeOut,"opacity");
    animationFadeOut->setDuration(1);
    animationFadeOut->setStartValue(1);
    animationFadeOut->setEndValue(0);
    animationFadeOut->setEasingCurve(QEasingCurve::OutBack);
    animationFadeOut->start()
    // / Fade Out
    // Fade Out
    QGraphicsOpacityEffect *effectFadeOut2 = new QGraphicsOpacityEffect(this);
    ui->groupSupply->setGraphicsEffect(effectFadeOut2);
    QPropertyAnimation *animationFadeOut2 = new QPropertyAnimation(effectFadeOut2,"opacity");
    animationFadeOut2->setDuration(1);
    animationFadeOut2->setStartValue(1);
    animationFadeOut2->setEndValue(0);
    animationFadeOut2->setEasingCurve(QEasingCurve::OutBack);
    animationFadeOut2->start();
    // / Fade Out
    ui->labelAnimationType->setGeometry(450,80,180,10);
    // / Page Setup
MainWindow::~MainWindow()
    qDebug() << "MainWindow::~MainWindow: DECONSTRUCTING...";
    delete ui;
void MainWindow::on_buttonHome_clicked() // 0
    qDebug() << "MainWindow::on_buttonHome_clicked: Clicked.";
    // Button Switch
    QPropertyAnimation *animation = new QPropertyAnimation(ui->labelNavAnimation, "geometry");
    animation->setDuration(300);
    animation->setStartValue(ui->labelNavAnimation->geometry());
    animation->setEndValue(QRect(472, 0, 136, 108));
    animation->start();
    // / Button Switch
    if(navigation == 1) // Search to Home
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut = new QGraphicsOpacityEffect(this);
        ui->groupSearch->setGraphicsEffect(effectFadeOut);
        QPropertyAnimation *animationFadeOut = new QPropertyAnimation(effectFadeOut,"opacity");
        animationFadeOut->setDuration(300);
        animationFadeOut->setStartValue(1);
        animationFadeOut->setEndValue(0);
        animationFadeOut->setEasingCurve(QEasingCurve::OutBack);
        animationFadeOut->start();
        // / Fade Out
        // Fade In
        QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(this);
        ui->groupHome->setGraphicsEffect(eff);
        QPropertyAnimation *a = new QPropertyAnimation(eff,"opacity");
        a->setDuration(300);
        a->setStartValue(0);
        a->setEndValue(1);
        a->setEasingCurve(QEasingCurve::InBack);
        a->start();
        // / Fade In
    else if(navigation == 2) // Supply to Home
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut = new QGraphicsOpacityEffect(this);
        ui->groupSupply->setGraphicsEffect(effectFadeOut);
        QPropertyAnimation *animationFadeOut = new QPropertyAnimation(effectFadeOut,"opacity");
        animationFadeOut->setDuration(300);
        animationFadeOut->setStartValue(1);
        animationFadeOut->setEndValue(0);
        animationFadeOut->setEasingCurve(QEasingCurve::OutBack);
        animationFadeOut->start();
        connect(animationFadeOut,&QPropertyAnimation::finished,[=](){effectFadeOut->deleteLater(); ui->groupSupply->setVisible(0); });
        // / Fade Out
        // Fade In
        QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(this);
        ui->groupHome->setGraphicsEffect(eff);
        QPropertyAnimation *a = new QPropertyAnimation(eff,"opacity");
        a->setDuration(300);
        a->setStartValue(0);
        a->setEndValue(1);
        a->setEasingCurve(QEasingCurve::InBack);
        a->start();
        connect(animationFadeOut,&QPropertyAnimation::finished,[=](){effectFadeOut->deleteLater(); ui->groupHome->setVisible(1); });
        // / Fade In
    navigation = 0;
void MainWindow::on_buttonSearch_clicked() // 1
    qDebug() << "MainWindow::on_buttonSearch_clicked: Clicked.";
    // Button Switch
    QPropertyAnimation *animation = new QPropertyAnimation(ui->labelNavAnimation, "geometry");
    animation->setDuration(300);
    animation->setStartValue(ui->labelNavAnimation->geometry());
    animation->setEndValue(QRect(200, 0, 136, 108));
    animation->start();
    // / Button Switch
    if(navigation == 0) // Home to Search
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut = new QGraphicsOpacityEffect(this);
        ui->groupHome->setGraphicsEffect(effectFadeOut);
        QPropertyAnimation *animationFadeIn = new QPropertyAnimation(effectFadeOut,"opacity");
        animationFadeIn->setDuration(300);
        animationFadeIn->setStartValue(1);
        animationFadeIn->setEndValue(0);
        animationFadeIn->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn->start();
        // / Fade Out
        // Fade In
        QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(this);
        ui->groupSearch->setGraphicsEffect(eff);
        QPropertyAnimation *a = new QPropertyAnimation(eff,"opacity");
        a->setDuration(300);
        a->setStartValue(0);
        a->setEndValue(1);
        a->setEasingCurve(QEasingCurve::InBack);
        a->start();
        // / Fade In
    else if(navigation == 2) // Supply to Search
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut = new QGraphicsOpacityEffect(this);
        ui->groupSupply->setGraphicsEffect(effectFadeOut);
        QPropertyAnimation *animationFadeIn = new QPropertyAnimation(effectFadeOut,"opacity");
        animationFadeIn->setDuration(300);
        animationFadeIn->setStartValue(1);
        animationFadeIn->setEndValue(0);
        animationFadeIn->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn->start();
        // / Fade Out
        // Fade In
        QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(this);
        ui->groupSearch->setGraphicsEffect(eff);
        QPropertyAnimation *a = new QPropertyAnimation(eff,"opacity");
        a->setDuration(300);
        a->setStartValue(0);
        a->setEndValue(1);
        a->setEasingCurve(QEasingCurve::InBack);
        a->start();
        // / Fade In
    navigation = 1;
void MainWindow::on_buttonSupply_clicked() // 2
    qDebug() << "MainWindow::on_buttonSupply_clicked: Clicked.";
    // Button Switch
    QPropertyAnimation *animation = new QPropertyAnimation(ui->labelNavAnimation, "geometry");
    animation->setDuration(300);
    animation->setStartValue(ui->labelNavAnimation->geometry());
    animation->setEndValue(QRect(750, 0, 136, 108));
    animation->start();
    // / Button Switch
    if(navigation == 0) // Home to Supply
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut = new QGraphicsOpacityEffect(this);
        ui->groupHome->setGraphicsEffect(effectFadeOut);
        QPropertyAnimation *animationFadeIn = new QPropertyAnimation(effectFadeOut,"opacity");
        animationFadeIn->setDuration(300);
        animationFadeIn->setStartValue(1);
        animationFadeIn->setEndValue(0);
        animationFadeIn->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn->start();
        connect(animationFadeIn,&QPropertyAnimation::finished,[=](){effectFadeOut->deleteLater(); ui->groupHome->setVisible(0); });
        // / Fade Out
        // Fade In
        QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(this);
        ui->groupSupply->setGraphicsEffect(eff);
        QPropertyAnimation *a = new QPropertyAnimation(eff,"opacity");
        a->setDuration(300);
        a->setStartValue(0);
        a->setEndValue(1);
        a->setEasingCurve(QEasingCurve::InBack);
        a->start();
        connect(a,&QPropertyAnimation::finished,[=](){eff->deleteLater(); ui->groupSupply->setVisible(1); });
        // / Fade In
    else if(navigation == 1) // Search to Supply
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut = new QGraphicsOpacityEffect(this);
        ui->groupSearch->setGraphicsEffect(effectFadeOut);
        QPropertyAnimation *animationFadeOut = new QPropertyAnimation(effectFadeOut,"opacity");
        animationFadeOut->setDuration(300);
        animationFadeOut->setStartValue(1);
        animationFadeOut->setEndValue(0);
        animationFadeOut->setEasingCurve(QEasingCurve::OutBack);
        animationFadeOut->start();
        connect(animationFadeOut,&QPropertyAnimation::finished,[=](){effectFadeOut->deleteLater(); ui->groupSearch->setVisible(0);});
        // / Fade Out
        // Fade In
        QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(this);
        ui->groupSupply->setGraphicsEffect(eff);
        QPropertyAnimation *a = new QPropertyAnimation(eff,"opacity");
        a->setDuration(300);
        a->setStartValue(0);
        a->setEndValue(1);
        a->setEasingCurve(QEasingCurve::InBack);
        a->start();
        // / Fade In
    navigation = 2;
void MainWindow::on_buttonHomeAll_clicked()
    qDebug() << "MainWindow::on_buttonHomeAll_clicked: Clicked.";
    ui->buttonHomeAll-> setStyleSheet("QPushButton { background-color:white;  border:none; font-size:32px; border-bottom: 2px solid rgb(217,217,217); color:red; } ");
    ui->buttonHomeG->setStyleSheet("QPushButton { background-color:white;  border:none; font-size:32px; border-bottom: 2px solid rgb(217,217,217); color:black; } ");
    ui->buttonHomeD->setStyleSheet("QPushButton { background-color:white;  border:none; font-size:32px; border-bottom: 2px solid rgb(217,217,217); color:black; } ");
    // Filter Button Movement
    QPropertyAnimation *animation = new QPropertyAnimation(ui->labelAnimationType, "geometry");
    animation->setDuration(300);
    animation->setStartValue(ui->labelAnimationType->geometry());
    animation->setEndValue(QRect(450, 80, 180, 10));
    animation->start();
    // / Filter Button Movement
    if(filterType == 1) // G to All
        // Fade In
        QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(this);
        ui->buttonFuel7->setGraphicsEffect(eff);
        QPropertyAnimation *a = new QPropertyAnimation(eff,"opacity");
        a->setDuration(300);
        a->setStartValue(0);
        a->setEndValue(1);
        a->setEasingCurve(QEasingCurve::InBack);
        a->start();
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *eff2 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel8->setGraphicsEffect(eff2);
        QPropertyAnimation *a2 = new QPropertyAnimation(eff2,"opacity");
        a2->setDuration(300);
        a2->setStartValue(0);
        a2->setEndValue(1);
        a2->setEasingCurve(QEasingCurve::InBack);
        a2->start();
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *eff3 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel9->setGraphicsEffect(eff3);
        QPropertyAnimation *a3 = new QPropertyAnimation(eff3,"opacity");
        a3->setDuration(300);
        a3->setStartValue(0);
        a3->setEndValue(1);
        a3->setEasingCurve(QEasingCurve::InBack);
        a3->start();
        // / Fade In
        // Button Movement
        QPropertyAnimation *animation2 = new QPropertyAnimation(ui->buttonFuel10, "geometry");
        animation2->setDuration(300);
        animation2->setStartValue(ui->buttonFuel10->geometry());
        animation2->setEndValue(QRect(80, 1240, 290, 290));
        animation2->start();
        // / Button Movement
    else if(filterType == 2)
        // Button Movement
        QPropertyAnimation *animation5 = new QPropertyAnimation(ui->buttonFuel7, "geometry");
        animation5->setDuration(300);
        animation5->setStartValue(ui->buttonFuel7->geometry());
        animation5->setEndValue(QRect(80, 930, 290, 290));
        animation5->start();
        // / Button Movement
        // Button Movement
        QPropertyAnimation *animation3 = new QPropertyAnimation(ui->buttonFuel8, "geometry");
        animation3->setDuration(300);
        animation3->setStartValue(ui->buttonFuel8->geometry());
        animation3->setEndValue(QRect(395, 930, 290, 290));
        animation3->start();
        // / Button Movement
        // Button Movement
        QPropertyAnimation *animation4 = new QPropertyAnimation(ui->buttonFuel9, "geometry");
        animation4->setDuration(300);
        animation4->setStartValue(ui->buttonFuel9->geometry());
        animation4->setEndValue(QRect(710, 930, 290, 290));
        animation4->start();
        // / Button Movement
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect1 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel1->setGraphicsEffect(fadeInEffect1);
        QPropertyAnimation *animationFaceIn = new QPropertyAnimation(fadeInEffect1,"opacity");
        animationFaceIn->setDuration(300);
        animationFaceIn->setStartValue(0);
        animationFaceIn->setEndValue(1);
        animationFaceIn->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn->start();
        connect(animationFaceIn,&QPropertyAnimation::finished,[=](){fadeInEffect1->deleteLater(); ui->buttonFuel1->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect2 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel2->setGraphicsEffect(fadeInEffect2);
        QPropertyAnimation *animationFaceIn2 = new QPropertyAnimation(fadeInEffect2,"opacity");
        animationFaceIn2->setDuration(300);
        animationFaceIn2->setStartValue(0);
        animationFaceIn2->setEndValue(1);
        animationFaceIn2->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn2->start();
        connect(animationFaceIn2,&QPropertyAnimation::finished,[=](){fadeInEffect2->deleteLater(); ui->buttonFuel2->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect3 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel3->setGraphicsEffect(fadeInEffect3);
        QPropertyAnimation *animationFaceIn3 = new QPropertyAnimation(fadeInEffect3,"opacity");
        animationFaceIn3->setDuration(300);
        animationFaceIn3->setStartValue(0);
        animationFaceIn3->setEndValue(1);
        animationFaceIn3->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn3->start();
        connect(animationFaceIn3,&QPropertyAnimation::finished,[=](){fadeInEffect3->deleteLater(); ui->buttonFuel3->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect4 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel4->setGraphicsEffect(fadeInEffect4);
        QPropertyAnimation *animationFaceIn4 = new QPropertyAnimation(fadeInEffect4,"opacity");
        animationFaceIn4->setDuration(300);
        animationFaceIn4->setStartValue(0);
        animationFaceIn4->setEndValue(1);
        animationFaceIn4->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn4->start();
        connect(animationFaceIn4,&QPropertyAnimation::finished,[=](){fadeInEffect4->deleteLater(); ui->buttonFuel4->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect5 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel5->setGraphicsEffect(fadeInEffect5);
        QPropertyAnimation *animationFaceIn5 = new QPropertyAnimation(fadeInEffect5,"opacity");
        animationFaceIn5->setDuration(300);
        animationFaceIn5->setStartValue(0);
        animationFaceIn5->setEndValue(1);
        animationFaceIn5->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn5->start();
        connect(animationFaceIn5,&QPropertyAnimation::finished,[=](){fadeInEffect5->deleteLater(); ui->buttonFuel5->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect6 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel6->setGraphicsEffect(fadeInEffect6);
        QPropertyAnimation *animationFaceIn6 = new QPropertyAnimation(fadeInEffect6,"opacity");
        animationFaceIn6->setDuration(300);
        animationFaceIn6->setStartValue(0);
        animationFaceIn6->setEndValue(1);
        animationFaceIn6->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn6->start();
        connect(animationFaceIn6,&QPropertyAnimation::finished,[=](){fadeInEffect6->deleteLater(); ui->buttonFuel6->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect7 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel10->setGraphicsEffect(fadeInEffect7);
        QPropertyAnimation *animationFaceIn7 = new QPropertyAnimation(fadeInEffect7,"opacity");
        animationFaceIn7->setDuration(300);
        animationFaceIn7->setStartValue(0);
        animationFaceIn7->setEndValue(1);
        animationFaceIn7->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn7->start();
        connect(animationFaceIn7,&QPropertyAnimation::finished,[=](){fadeInEffect7->deleteLater(); ui->buttonFuel10->setVisible(1); });
        // / Fade In
    filterType = 0;
void MainWindow::on_buttonHomeG_clicked()
    qDebug() << "MainWindow::on_buttonHomeG_clicked: Clicked.";
    ui->buttonHomeAll->setStyleSheet("QPushButton { background-color:white;  border:none; font-size:32px; border-bottom: 2px solid rgb(217,217,217); color:black; } ");
    ui->buttonHomeG->setStyleSheet("QPushButton { background-color:white;  border:none; font-size:32px; border-bottom: 2px solid rgb(217,217,217); color:red; } ");
    ui->buttonHomeD->setStyleSheet("QPushButton { background-color:white;  border:none; font-size:32px; border-bottom: 2px solid rgb(217,217,217); color:black; } ");
    // Filter Button Movement
    QPropertyAnimation *animation = new QPropertyAnimation(ui->labelAnimationType, "geometry");
    animation->setDuration(300);
    animation->setStartValue(ui->labelAnimationType->geometry());
    animation->setEndValue(QRect(150, 80, 180, 10));
    animation->start();
    // / Filter Button Movement
    if(filterType == 0) // All to G
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut = new QGraphicsOpacityEffect(this);
        ui->buttonFuel7->setGraphicsEffect(effectFadeOut);
        QPropertyAnimation *animationFadeIn = new QPropertyAnimation(effectFadeOut,"opacity");
        animationFadeIn->setDuration(300);
        animationFadeIn->setStartValue(1);
        animationFadeIn->setEndValue(0);
        animationFadeIn->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn->start();
        // / Fade Out
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut2 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel8->setGraphicsEffect(effectFadeOut2);
        QPropertyAnimation *animationFadeIn2 = new QPropertyAnimation(effectFadeOut2,"opacity");
        animationFadeIn2->setDuration(300);
        animationFadeIn2->setStartValue(1);
        animationFadeIn2->setEndValue(0);
        animationFadeIn2->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn2->start();
        // / Fade Out
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut3 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel9->setGraphicsEffect(effectFadeOut3);
        QPropertyAnimation *animationFadeIn3 = new QPropertyAnimation(effectFadeOut3,"opacity");
        animationFadeIn3->setDuration(300);
        animationFadeIn3->setStartValue(1);
        animationFadeIn3->setEndValue(0);
        animationFadeIn3->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn3->start();
        // / Fade Out
        // Button Movement
        QPropertyAnimation *animation2 = new QPropertyAnimation(ui->buttonFuel10, "geometry");
        animation2->setDuration(300);
        animation2->setStartValue(ui->buttonFuel10->geometry());
        animation2->setEndValue(QRect(80, 930, 290, 290));
        animation2->start();
        // / Button Movement
    filterType = 1;
void MainWindow::on_buttonHomeD_clicked()
    qDebug() << "MainWindow::on_buttonHomeD_clicked: Clicked.";
    ui->buttonHomeAll->setStyleSheet("QPushButton { background-color:white;  border:none; font-size:32px; border-bottom: 2px solid rgb(217,217,217); color:black; } ");
    ui->buttonHomeG->setStyleSheet("QPushButton { background-color:white;  border:none; font-size:32px; border-bottom: 2px solid rgb(217,217,217); color:black; } ");
    ui->buttonHomeD->setStyleSheet("QPushButton { background-color:white;  border:none; font-size:32px; border-bottom: 2px solid rgb(217,217,217); color:red; } ");
    // Filter Button Movement
    QPropertyAnimation *animation = new QPropertyAnimation(ui->labelAnimationType, "geometry");
    animation->setDuration(300);
    animation->setStartValue(ui->labelAnimationType->geometry());
    animation->setEndValue(QRect(750, 80, 180, 10));
    animation->start();
    // / Filter Button Movement
    if(filterType == 0) 
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut = new QGraphicsOpacityEffect(this);
        ui->buttonFuel1->setGraphicsEffect(effectFadeOut);
        QPropertyAnimation *animationFadeOut = new QPropertyAnimation(effectFadeOut,"opacity");
        animationFadeOut->setDuration(300);
        animationFadeOut->setStartValue(1);
        animationFadeOut->setEndValue(0);
        animationFadeOut->setEasingCurve(QEasingCurve::OutBack);
        animationFadeOut->start();
        connect(animationFadeOut,&QPropertyAnimation::finished,[=](){effectFadeOut->deleteLater(); ui->buttonFuel1->setVisible(0); });
        // / Fade Out
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut2 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel2->setGraphicsEffect(effectFadeOut2);
        QPropertyAnimation *animationFadeIn2 = new QPropertyAnimation(effectFadeOut2,"opacity");
        animationFadeIn2->setDuration(300);
        animationFadeIn2->setStartValue(1);
        animationFadeIn2->setEndValue(0);
        animationFadeIn2->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn2->start();
        connect(animationFadeIn2,&QPropertyAnimation::finished,[=](){effectFadeOut2->deleteLater(); ui->buttonFuel1->setVisible(0); });
        // / Fade Out
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut3 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel3->setGraphicsEffect(effectFadeOut3);
        QPropertyAnimation *animationFadeIn3 = new QPropertyAnimation(effectFadeOut3,"opacity");
        animationFadeIn3->setDuration(300);
        animationFadeIn3->setStartValue(1);
        animationFadeIn3->setEndValue(0);
        animationFadeIn3->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn3->start();
        connect(animationFadeIn3,&QPropertyAnimation::finished,[=](){effectFadeOut3->deleteLater(); ui->buttonFuel3->setVisible(0); });
        // / Fade Out
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut4 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel4->setGraphicsEffect(effectFadeOut4);
        QPropertyAnimation *animationFadeIn4 = new QPropertyAnimation(effectFadeOut4,"opacity");
        animationFadeIn4->setDuration(300);
        animationFadeIn4->setStartValue(1);
        animationFadeIn4->setEndValue(0);
        animationFadeIn4->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn4->start();
        connect(animationFadeIn4,&QPropertyAnimation::finished,[=](){effectFadeOut4->deleteLater(); ui->buttonFuel4->setVisible(0); });
        // / Fade Out
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut5 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel5->setGraphicsEffect(effectFadeOut5);
        QPropertyAnimation *animationFadeIn5 = new QPropertyAnimation(effectFadeOut5,"opacity");
        animationFadeIn5->setDuration(300);
        animationFadeIn5->setStartValue(1);
        animationFadeIn5->setEndValue(0);
        animationFadeIn5->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn5->start();
        connect(animationFadeIn5,&QPropertyAnimation::finished,[=](){effectFadeOut5->deleteLater(); ui->buttonFuel5->setVisible(0); });
        // / Fade Out
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut6 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel6->setGraphicsEffect(effectFadeOut6);
        QPropertyAnimation *animationFadeIn6 = new QPropertyAnimation(effectFadeOut6,"opacity");
        animationFadeIn6->setDuration(300);
        animationFadeIn6->setStartValue(1);
        animationFadeIn6->setEndValue(0);
        animationFadeIn6->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn6->start();
        connect(animationFadeIn6,&QPropertyAnimation::finished,[=](){effectFadeOut6->deleteLater(); ui->buttonFuel6->setVisible(0); });
        // / Fade Out
        // Fade Out
        QGraphicsOpacityEffect *effectFadeOut7 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel10->setGraphicsEffect(effectFadeOut7);
        QPropertyAnimation *animationFadeIn7 = new QPropertyAnimation(effectFadeOut7,"opacity");
        animationFadeIn7->setDuration(300);
        animationFadeIn7->setStartValue(1);
        animationFadeIn7->setEndValue(0);
        animationFadeIn7->setEasingCurve(QEasingCurve::OutBack);
        animationFadeIn7->start();
        connect(animationFadeIn7,&QPropertyAnimation::finished,[=](){effectFadeOut7->deleteLater(); ui->buttonFuel10->setVisible(0); });
        // / Fade Out
        // Button Movement
        QPropertyAnimation *animation2 = new QPropertyAnimation(ui->buttonFuel7, "geometry");
        animation2->setDuration(300);
        animation2->setStartValue(ui->buttonFuel7->geometry());
        animation2->setEndValue(QRect(80, 310, 290, 290));
        animation2->start();
        // / Button Movement
        // Button Movement
        QPropertyAnimation *animation3 = new QPropertyAnimation(ui->buttonFuel8, "geometry");
        animation3->setDuration(300);
        animation3->setStartValue(ui->buttonFuel8->geometry());
        animation3->setEndValue(QRect(395, 310, 290, 290));
        animation3->start();
        // / Button Movement
        // Button Movement
        QPropertyAnimation *animation4 = new QPropertyAnimation(ui->buttonFuel9, "geometry");
        animation4->setDuration(300);
        animation4->setStartValue(ui->buttonFuel9->geometry());
        animation4->setEndValue(QRect(710, 310, 290, 290));
        animation4->start();
        // / Button Movement
    filterType = 2;

Thanks in advance,
Ryan.

@SGaist Thanks for the response!

I replaced all the start() functions with start(QAbstractAnimation::DeleteWhenStopped), but I'm still getting the same warnings whenever I click the navigation buttons.

Is it a requirement to use the save/restore functions for this type of animation, as I get the odd message about unbalanced save/restore? This is the qDebug+Warning output from a single button click:

MainWindow::on_buttonHomeAll_clicked: D to All.
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::worldTransform: Painter not active
QWidgetEffectSourcePrivate::pixmap: Painter not active
QPainter::save: Painter not active
QPainter::setOpacity: Painter not active
QPainter::setWorldTransform: Painter not active
QPainter::restore: Unbalanced save/restore
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::worldTransform: Painter not active
QWidgetEffectSourcePrivate::pixmap: Painter not active
QPainter::save: Painter not active
QPainter::setOpacity: Painter not active
QPainter::setWorldTransform: Painter not active
QPainter::restore: Unbalanced save/restore
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::worldTransform: Painter not active
QWidgetEffectSourcePrivate::pixmap: Painter not active
QPainter::save: Painter not active
QPainter::setOpacity: Painter not active
QPainter::setWorldTransform: Painter not active
QPainter::restore: Unbalanced save/restore
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::worldTransform: Painter not active
QWidgetEffectSourcePrivate::pixmap: Painter not active
QPainter::save: Painter not active
QPainter::setOpacity: Painter not active
QPainter::setWorldTransform: Painter not active
QPainter::restore: Unbalanced save/restore
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::worldTransform: Painter not active
QWidgetEffectSourcePrivate::pixmap: Painter not active
QPainter::save: Painter not active
QPainter::setOpacity: Painter not active
QPainter::setWorldTransform: Painter not active
QPainter::restore: Unbalanced save/restore
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::worldTransform: Painter not active
QWidgetEffectSourcePrivate::pixmap: Painter not active
QPainter::save: Painter not active
QPainter::setOpacity: Painter not active
QPainter::setWorldTransform: Painter not active
QPainter::restore: Unbalanced save/restore
QPainter::begin: A paint device can only be painted by one painter at a time.
QPainter::translate: Painter not active
QPainter::worldTransform: Painter not active
QWidgetEffectSourcePrivate::pixmap: Painter not active
QPainter::save: Painter not active
QPainter::setOpacity: Painter not active
QPainter::setWorldTransform: Painter not active
QPainter::restore: Unbalanced save/restore

Updated implementation of same button click

qDebug() << "MainWindow::on_buttonHomeAll_clicked: D to All.";
        // Button Movement
        QPropertyAnimation *animation5 = new QPropertyAnimation(ui->buttonFuel7, "geometry");
        animation5->setDuration(300);
        animation5->setStartValue(ui->buttonFuel7->geometry());
        animation5->setEndValue(QRect(80, 930, 290, 290));
        animation5->start(QAbstractAnimation::DeleteWhenStopped);
        // / Button Movement
        // Button Movement
        QPropertyAnimation *animation3 = new QPropertyAnimation(ui->buttonFuel8, "geometry");
        animation3->setDuration(300);
        animation3->setStartValue(ui->buttonFuel8->geometry());
        animation3->setEndValue(QRect(395, 930, 290, 290));
        animation3->start(QAbstractAnimation::DeleteWhenStopped);
        // / Button Movement
        // Button Movement
        QPropertyAnimation *animation4 = new QPropertyAnimation(ui->buttonFuel9, "geometry");
        animation4->setDuration(300);
        animation4->setStartValue(ui->buttonFuel9->geometry());
        animation4->setEndValue(QRect(710, 930, 290, 290));
        animation4->start(QAbstractAnimation::DeleteWhenStopped);
        // / Button Movement
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect1 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel1->setGraphicsEffect(fadeInEffect1);
        QPropertyAnimation *animationFaceIn = new QPropertyAnimation(fadeInEffect1,"opacity");
        animationFaceIn->setDuration(300);
        animationFaceIn->setStartValue(0);
        animationFaceIn->setEndValue(1);
        animationFaceIn->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn->start(QAbstractAnimation::DeleteWhenStopped);
        connect(animationFaceIn,&QPropertyAnimation::finished,[=](){fadeInEffect1->deleteLater(); ui->buttonFuel1->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect2 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel2->setGraphicsEffect(fadeInEffect2);
        QPropertyAnimation *animationFaceIn2 = new QPropertyAnimation(fadeInEffect2,"opacity");
        animationFaceIn2->setDuration(300);
        animationFaceIn2->setStartValue(0);
        animationFaceIn2->setEndValue(1);
        animationFaceIn2->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn2->start(QAbstractAnimation::DeleteWhenStopped);
        connect(animationFaceIn2,&QPropertyAnimation::finished,[=](){fadeInEffect2->deleteLater(); ui->buttonFuel2->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect3 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel3->setGraphicsEffect(fadeInEffect3);
        QPropertyAnimation *animationFaceIn3 = new QPropertyAnimation(fadeInEffect3,"opacity");
        animationFaceIn3->setDuration(300);
        animationFaceIn3->setStartValue(0);
        animationFaceIn3->setEndValue(1);
        animationFaceIn3->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn3->start(QAbstractAnimation::DeleteWhenStopped);
        connect(animationFaceIn3,&QPropertyAnimation::finished,[=](){fadeInEffect3->deleteLater(); ui->buttonFuel3->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect4 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel4->setGraphicsEffect(fadeInEffect4);
        QPropertyAnimation *animationFaceIn4 = new QPropertyAnimation(fadeInEffect4,"opacity");
        animationFaceIn4->setDuration(300);
        animationFaceIn4->setStartValue(0);
        animationFaceIn4->setEndValue(1);
        animationFaceIn4->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn4->start(QAbstractAnimation::DeleteWhenStopped);
        connect(animationFaceIn4,&QPropertyAnimation::finished,[=](){fadeInEffect4->deleteLater(); ui->buttonFuel4->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect5 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel5->setGraphicsEffect(fadeInEffect5);
        QPropertyAnimation *animationFaceIn5 = new QPropertyAnimation(fadeInEffect5,"opacity");
        animationFaceIn5->setDuration(300);
        animationFaceIn5->setStartValue(0);
        animationFaceIn5->setEndValue(1);
        animationFaceIn5->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn5->start(QAbstractAnimation::DeleteWhenStopped);
        connect(animationFaceIn5,&QPropertyAnimation::finished,[=](){fadeInEffect5->deleteLater(); ui->buttonFuel5->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect6 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel6->setGraphicsEffect(fadeInEffect6);
        QPropertyAnimation *animationFaceIn6 = new QPropertyAnimation(fadeInEffect6,"opacity");
        animationFaceIn6->setDuration(300);
        animationFaceIn6->setStartValue(0);
        animationFaceIn6->setEndValue(1);
        animationFaceIn6->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn6->start(QAbstractAnimation::DeleteWhenStopped);
        connect(animationFaceIn6,&QPropertyAnimation::finished,[=](){fadeInEffect6->deleteLater(); ui->buttonFuel6->setVisible(1); });
        // / Fade In
        // Fade In
        QGraphicsOpacityEffect *fadeInEffect7 = new QGraphicsOpacityEffect(this);
        ui->buttonFuel10->setGraphicsEffect(fadeInEffect7);
        QPropertyAnimation *animationFaceIn7 = new QPropertyAnimation(fadeInEffect7,"opacity");
        animationFaceIn7->setDuration(300);
        animationFaceIn7->setStartValue(0);
        animationFaceIn7->setEndValue(1);
        animationFaceIn7->setEasingCurve(QEasingCurve::InBack);
        animationFaceIn7->start(QAbstractAnimation::DeleteWhenStopped);
        connect(animationFaceIn7,&QPropertyAnimation::finished,[=](){fadeInEffect7->deleteLater(); ui->buttonFuel10->setVisible(1); });
        // / Fade In
	

@SGaist

Thanks for taking the time! I have tried with the following compilers, all issuing the same warnings;

Qt 6.1.2 MinGW & MSVC 2019 64-bit
Qt 5.12.11 MinGW 64-bit & 32-bit
Qt 5.12.11 MSVC 2017 64-bit
Edit: Qt 6.2 MingGW 64-bit

I have cleaned up the code and made a GitHub Gist as I kept hitting the character limit for the forums. If you would like it in another format, please feel free to let me know.

Project Link.

@SGaist

Very strange! It is worth mentioning that I only get the warnings when I click one of the main navigation bars, then one of the filters.

For example; click Supply, then Home (no warnings), then Filter 2 (warnings spam).

If anyone else is able to trigger the warnings by clicking Supply, Home, then the Filters, please let me know what versions you're running!

Thanks,

I ended up requesting support with Qt Enterprise and they gave instructions on how to fix it.

For anyone else having this issue, I had to setGraphicsEffect to nullptr after the animation has finished: "ui->buttonItem10->setGraphicsEffect(nullptr);".

connect(animationFadeIn7,&QPropertyAnimation::finished,[=](){effectFadeOut7->deleteLater(); ui->buttonItem10->setVisible(0); ui->buttonItem10->setGraphicsEffect(nullptr); });