#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H
#include"qpushbutton.h"
#include"qstring.h"
#include"qpropertyanimation.h"
#include <QWidget>
class MyPushButton : public QPushButton
{
Q_OBJECT
QString normalImagePath;
QString pressImagePath;
public:
// explicit MyPushButton(QWidget *parent = nullptr);
MyPushButton(QString normalImage,QString pressImage=" ");
void Zoom1();
void Zoom2();
signals:
public slots:
};
#endif // MYPUSHBUTTON_H
```c++
#include "chooselevelscene.h"
#include"qmenubar.h"
#include"qmenu.h"
#include"qaction.h"
#include"qpainter.h"
#include"qpixmap.h"
ChooseLevelScene::ChooseLevelScene(QWidget *parent) : QMainWindow(parent)
{
QMenuBar *menuBar=new QMenuBar(this);
setMenuBar(menuBar);
QMenu *startMenu=menuBar->addMenu("开始");
QAction *quitAction=startMenu->addAction("退出");
connect(quitAction,&QAction::triggered,[=](){
this->close();
});
//返回按钮设置
MyPushButton * backBtn=new MyPushButton(":/res/BackButton.png",":/res/BackButtonSelected.png");
backBtn->setParent(this);
backBtn->move(this->width()-backBtn->width(),this->height()-backBtn->height());
}
void ChooseLevelScene::paintEvent(QPaintEvent *event)
{
//加载背景
QPixmap pix;
pix.load(":/res/PlayLevelSceneBg.png");
QPainter painter(this);
painter.drawPixmap(0,0,this->width(),this->height(),pix);
//加载标题
pix.load(":/res/Title.png");
pix=pix.scaled(pix.width()*1.5,pix.height()*1.5);
painter.drawPixmap(this->width()*0.5-pix.width()*0.5,50,pix.width(),pix.height(),pix);
}
```c++
#include "mypushbutton.h"
#include"QPixmap"
#include"qpainter.h"
#include"qdebug.h"
#include"qeasingcurve.h"
//MyPushButton::MyPushButton(QWidget *parent) : QWidget(parent)
//{
//}
MyPushButton::MyPushButton(QString normalImg,QString pressImg)
{
normalImagePath=normalImg;
pressImagePath=pressImg;
QPixmap pix;
bool ret=pix.load(normalImagePath);
// pix.scaled(QSize(pix.width()*5,pix.height()*5));
////////////////////缩放图片要返回一个值,重新的一个pix才行
if(!ret)
qDebug()<<"图片加载失败";
//缩放图片
pix=pix.scaled(QSize(pix.width()*1.5,pix.height()*1.5));
this->setFixedSize(pix.width(),pix.height());
this->setIcon(QIcon(pix));
this->setStyleSheet("QPushButton{border:0px;}");
this->setIconSize(QSize(pix.width(),pix.height()));
}
```