目录
目录
一、设计登录主页面
1.0添加资源文件
将所需要的图片、音频添加到资源文件中
1.1设置窗口(标题、图标、背景)
设置窗口属性
//1.添加资源文件
//2.指定窗口大小--固定大小
this->setFixedSize(900,600);
//3.设置窗口左上角图标
this->setWindowIcon(QIcon(":/resour/04.png"));
//4.设置窗口标题
this->setWindowTitle("姬霓太美");
//5.加载背景图片--重写画图事件函数
//详见绘图事件函数中
//6.在ui文件中添加工具栏,并将其他无用部分删除
加载背景图片和游戏名称图片
//重写绘图函数--声明作用域,不然会被编译为全局函数
//头文件--<QPainter>
void newload::paintEvent(QPaintEvent*)
{
//1.创建一个画家对象
QPainter painter1(this); //指定父亲
//2.创建pixmap类型的对象,用于加载背景图片
QPixmap pixmap1;
//3.利用pixmap1加载背景图片
pixmap1.load(":/resour/01.jpg");
//4.利用画家将pixmap1加载的背景图画出来
//注意drawpixmap的参数
painter1.drawPixmap(0,0,this->width(),this->height(),pixmap1);
//5.利用pixmap加载《游戏名》图片
pixmap1.load(":/resour/06.png"); //URL:互联网上标准资源的唯一地址
//6.改变图片大小
//scaled:缩放、规模
pixmap1=pixmap1.scaled(pixmap1.width()*0.4,pixmap1.height()*0.4);
//7.将 游戏名 的图片画出来
painter1.drawPixmap(20,33,pixmap1);
}
1.2自定义按钮类
目的是:按下按钮时,有一个弹动的效果
1.自定义按钮类:mybutton,继承于QPushButton,具有父类的一些属性,也有自己的特有属性
2.自己编写构造函数,第一个参数是未点击按钮图片时的路径,第二个是点击按钮时图片的路径
3.有两个成员函数保存图片路径,加载函数时一些特殊的设定
1.重写mybutton类构造函数
头文件:
//重写构造函数
//explicit mybutton(QWidget *parent = nullptr);
//注意第二个参数为默认参数,实现和声明只需要有一个说明即可
mybutton(QString normalimg,QString pressimg = "");
//两个成员函数保存图片路径
QString normalimgpath;
QString pressimgpath;
cpp文件:
mybutton::mybutton(QString normalimg, QString pressimg)
{
//创建一个Pixmap,更好的显示图片
QPixmap pixmap1;
//保存输入的路径
normalimgpath = normalimg;
pressimgpath = pressimg;
//加载默认显示的图片
int pixnum = pixmap1.load(normalimgpath); //函数返回值为bool
//如果加载失败返回false,提示加载失败
if(!pixnum)
{
//此时的this,指的是mybutton
QString pixstr = QString("%1 图片加载失败").arg(this->normalimgpath);
qDebug()<<pixstr;
//返回即可
return;
}
//正常加载
//设定加载图片的参数--this是按钮
//将按钮大小设置为图片大小
this->setFixedSize(pixmap1.width(),pixmap1.height());
//设置不规则图片格式
//边界--0px---透明背景
this->setStyleSheet("QPushButton{border:0px;}");
//设置图片:给按钮添加图片
this->setIcon(QIcon(":/resour/05.png"));
//设置图片大小
this->setIconSize(QSize(pixmap1.width(),pixmap1.height()));
//利用画家画出来
//在主窗口
}
2.主窗口创建 开始游戏 按钮
暂时还没有弹动的功能
//7.创建一个自定义类型的按钮
mybutton* mybutton1 = new mybutton(":/resour/05.png");
//将按钮添加到对象树上
mybutton1->setParent(this);
//移动自定义按钮的位置
mybutton1->move(this->width()*0.5-mybutton1-