网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
}else{
//边框
painter.save();
QColor grayColor(199,199,199);//灰色
painter.setBrush(grayColor);//画笔颜色
QRectF roundRect=QRectF(0,0,widthSize,heightSize);
painter.drawRoundedRect(roundRect,0.5\*heightSize,0.5\*heightSize);
//绘制椭圆边框
painter.restore();
//背景
painter.save();
painter.setBrush(Qt::red);
QRectF redRect=QRectF(heightSize\*0.05,heightSize\*0.05,widthSize-heightSize\*0.1,heightSize\*0.9);
painter.drawRoundedRect(redRect,0.45\*heightSize,0.45\*heightSize);
//第1、2个参数制定矩形的左上角起点,第3个参数制定矩形的长度,第4个参数指定矩形的宽度
//最后两个参数决定角的圆度。它可以为0到99之间的任意值(99代表最圆)。
//绘制圆形矩形
painter.restore();
//按钮
painter.save();
painter.setBrush(Qt::white);
painter.drawEllipse(currentValue,0.05\*heightSize,0.9\*heightSize,0.9\*heightSize);
//第1,2个参数表示圆/椭圆距屏幕左上角的像素数。第3,4个参数表示圆/椭圆的宽度和高度,两者相同时为圆。
//绘制圆按钮
painter.restore();
}
}
鼠标点击进行绘制,按钮从左边滑到右边应该有一个运动状态。这就是定时器。
在窗体构造函数中进行信号绑定:
timer=new QTimer(this);
timer->setInterval(50);
connect(timer,SIGNAL(timeout()),this,SLOT(begainAnimation()));
//下面是绘制参数相关
if(ison){
currentValue=widthSize-0.95\*heightSize;
}else{
currentValue=0.05\*heightSize;
}
然后编写begainAnimation函数:
void MainWindow::begainAnimation(){
int i=0.05*heightSize;
int n=widthSize-0.95*heightSize;
if(ison){
currentValue+=1;
if(currentValue>n-i){
timer->stop();
}
}else{
currentValue-=1;
if(currentValue<i){
timer->stop();
}
}
update();
//每1ms调用一次updata。
}
---
>
> 绘制矩形:paint->drawRect(20,20,160,160);
> 第1、2个参数制定矩形的左上角起点,第3个参数制定矩形的长度,第4个参数指定矩形的宽度
>
>
>
>
> 绘制圆和椭圆:paint->drawEllipse(20,20,210,160);
> 第1,2个参数表示圆/椭圆距屏幕左上角的像素数。第3,4个参数表示圆/椭圆的宽度和高度,两者相同时为圆。
>
>
>
>
> 绘制圆角矩形:paint->drawRoundRect(20,20,210,160,50,50);
> 前面四个参数和绘制矩形的参数一致,最后两个参数决定角的圆度。它可以为0到99之间的任意值(99代表最圆)。
>
>
>
---
![img](https://img-blog.csdnimg.cn/img_convert/d05f67ce9b65bac39c418a3877c45dd0.png)
![img](https://img-blog.csdnimg.cn/img_convert/10feffe048bfb97d7fca301b1a87cf63.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**