当前位置: 首页 > wzjs >正文

自做衣服网站新闻资讯网站php源码

自做衣服网站,新闻资讯网站php源码,技术支持::天空网络-临汾做网站,微官网是网站吗绘制温度曲线 1、安装事件过滤器2、实现事件过滤器3、定义一些常量4、绘制高温曲线5、绘制低温曲线6、在UI函数里更新事件7、代码仓库地址8、总结 1、安装事件过滤器 //给标签添加事件过滤器 ui->higntTemLabel->installEventFilter(this); //高温事件过滤器 ui-…

绘制温度曲线

  • 1、安装事件过滤器
  • 2、实现事件过滤器
  • 3、定义一些常量
  • 4、绘制高温曲线
  • 5、绘制低温曲线
  • 6、在UI函数里更新事件
  • 7、代码仓库地址
  • 8、总结

1、安装事件过滤器

//给标签添加事件过滤器
ui->higntTemLabel->installEventFilter(this);        //高温事件过滤器
ui->lowTemLabel->installEventFilter(this);          //低温事件过滤器

2、实现事件过滤器

//事件过滤
bool MainWindow::eventFilter(QObject *watched, QEvent *event)
{if(event->type() == QEvent::Paint){//"watched" 是否等于 "ui->higntTemLabel",来判断是否是标签控件 "ui->higntTemLabel" 的绘图事件if(watched == ui->higntTemLabel){paintHightTemCure();        //绘制高温}if(watched == ui->lowTemLabel){paintLowTemCure();          //绘制低温}}return QWidget::eventFilter(watched,event);}

3、定义一些常量

#define INCREMENT 3         //温度升高或降低y轴增量
#define POINT_RADIUS 3      //绘制温度曲线点的半径#define OFFSET_X 19  //离温度曲线平均值的x坐标
#define OFFSET_Y 12  //离温度曲线平均值的x坐标

4、绘制高温曲线

//绘制高温曲线
void MainWindow::paintHightTemCure()
{QPainter painter(ui->higntTemLabel);    // 创建一个QPainter对象,将ui->higntTemLabel作为绘图设备//抗锯齿painter.setRenderHint(QPainter::Antialiasing,true);//1、获取x坐标int pointX[7] = {0};        //定义一个数组存储温度x坐标//遍历7个点for(int i=0; i<7;i++){pointX[i] = windDirectionList[i]->pos().x() + windDirectionList[i]->width()/2;;}//获取y坐标int tempSum = 0;         //高温总和int tempAverage = 0;    //高温平均值for(int i=0; i<7; i++){tempSum += day[i].highTem;      //7天高温值的总和}tempAverage = tempSum/7;            //7天温度平均值//计算Y坐标int pointY[7] = {0};        //7个y点坐标int centerY = ui->higntTemLabel->height()/2;    //高温标签y的中心坐标for(int i=0; i<7; i++){pointY[i] = centerY - ((day[i].highTem-tempAverage)*INCREMENT);    //获得7个点y坐标}//开始绘制//初始化画笔QPen pen = painter.pen();                //获得画笔pen.setWidth(1);                        //画笔宽度pen.setColor(QColor(45,224,217));       //设置画笔颜色painter.setPen(pen);            //设置画笔painter.setBrush(QColor(45,224,217));       //设置画刷,内部填充颜色//画点,画文本for(int i=0; i<7; i++){painter.drawEllipse(QPoint(pointX[i],pointY[i]), POINT_RADIUS,POINT_RADIUS);    //画7个点的圆圈//显示文本painter.drawText(pointX[i]-OFFSET_X,pointY[i]-OFFSET_Y,QString::number(day[i].highTem) + "℃");}//绘制曲线for(int i=0; i < 6; i++){if(i==0){pen.setStyle(Qt::DotLine);      //画虚线painter.setPen(pen);            //设置画笔}else{pen.setStyle(Qt::SolidLine);     //画实线painter.setPen(pen);             //设置画笔}painter.drawLine(pointX[i],pointY[i],pointX[i+1],pointY[i+1]);      //画7天的线}
}

5、绘制低温曲线

//绘制低温曲线
void MainWindow::paintLowTemCure()
{QPainter painter(ui->lowTemLabel);    // 创建一个QPainter对象,将ui->higntTemLabel作为绘图设备//抗锯齿painter.setRenderHint(QPainter::Antialiasing,true);//1、获取x坐标int pointX[7] = {0};        //定义一个数组存储温度x坐标//遍历7个点for(int i=0; i<7;i++){pointX[i] = windDirectionList[i]->pos().x() + windDirectionList[i]->width()/2;;}//获取y坐标int tempSum = 0;         //高温总和int tempAverage = 0;    //高温平均值for(int i=0; i<7; i++){tempSum += day[i].lowTem;      //7天高温值的总和}tempAverage = tempSum/7;            //7天温度平均值//计算Y坐标int pointY[7] = {0};        //7个y点坐标int centerY = ui->lowTemLabel->height()/2;    //高温标签y的中心坐标for(int i=0; i<7; i++){pointY[i] = centerY - ((day[i].lowTem-tempAverage)*INCREMENT);    //获得7个点y坐标}//开始绘制//初始化画笔QPen pen = painter.pen();                //获得画笔pen.setWidth(1);                        //画笔宽度pen.setColor(QColor(255,223,0));       //设置画笔颜色painter.setPen(pen);            //设置画笔painter.setBrush(QColor(255,223,0));       //设置画刷,内部填充颜色//画点,画文本for(int i=0; i<7; i++){painter.drawEllipse(QPoint(pointX[i],pointY[i]), POINT_RADIUS,POINT_RADIUS);    //画7个点的圆圈//        qDebug() << day[i].lowTem;//显示文本painter.drawText(pointX[i]-OFFSET_X,pointY[i]-OFFSET_Y,QString::number(day[i].lowTem) + "℃");}//绘制曲线for(int i=0; i < 6; i++){if(i==0){pen.setStyle(Qt::DotLine);      //画虚线painter.setPen(pen);            //设置画笔}else{pen.setStyle(Qt::SolidLine);     //画实线painter.setPen(pen);             //设置画笔}painter.drawLine(pointX[i],pointY[i],pointX[i+1],pointY[i+1]);      //画7天的线}}

6、在UI函数里更新事件

//不添加温度就会显示为0℃
ui->higntTemLabel->update();
ui->lowTemLabel->update();

7、代码仓库地址

仓库地址

8、总结

以上就是Qt天气预报系统实现的整个过程了,浏览过程中,如若发现错误,欢迎大家指正,有问题的欢迎评论区留言或者私信。最后,如果大家觉得有所帮助,可以点一下赞,谢谢大家!祝大家天天开心,顺遂无虞!

Qt天气预报系统完成!

文章转载自:

http://OIPE2POe.wmmtL.cn
http://dAeYc862.wmmtL.cn
http://n2OxFQVR.wmmtL.cn
http://EVREPhkP.wmmtL.cn
http://0AAMitUN.wmmtL.cn
http://29yKjVJF.wmmtL.cn
http://sLriAAzU.wmmtL.cn
http://CR51ixqe.wmmtL.cn
http://x5CUrv22.wmmtL.cn
http://Pyqymif4.wmmtL.cn
http://6TPmxZGQ.wmmtL.cn
http://XbTU5SeP.wmmtL.cn
http://Qujm14o0.wmmtL.cn
http://o8ro72eo.wmmtL.cn
http://Ryx3l61d.wmmtL.cn
http://0ezFGI5Y.wmmtL.cn
http://MyRBmWtr.wmmtL.cn
http://lMzFwHfJ.wmmtL.cn
http://MhSEnXXe.wmmtL.cn
http://J4QfJKSF.wmmtL.cn
http://bCTsqrPN.wmmtL.cn
http://QWgPsQpB.wmmtL.cn
http://k1aOHakb.wmmtL.cn
http://Qp6WhSYL.wmmtL.cn
http://koDSMnV0.wmmtL.cn
http://RGOjOXJR.wmmtL.cn
http://DDNKjncn.wmmtL.cn
http://E0LzgaZM.wmmtL.cn
http://irmgoBCn.wmmtL.cn
http://mWuH5qWn.wmmtL.cn
http://www.dtcms.com/wzjs/698174.html

相关文章:

  • wordpress调样式seo没什么作用了
  • 做全景图有哪些网站wordpress slides
  • 织梦手机网站分亨链接怎么做江阴青阳道路建设网站
  • 太原建站的模板设计师培训资料
  • 邻水县规划和建设局 网站阳朔到桂林游船时间表
  • 宿迁做网站建设的公司新浪网页版登录
  • 建设网站的模板dw做网站地图
  • 安全的营销型网站制作做网站添加mp3
  • 网站semseo先做哪个做wow宏的网站
  • 营销相关网站市场咨询公司排名
  • 成都画时网站建设动漫制作专业有本科吗
  • 网站建设如何实现检索功能上海监理建设协会网站
  • 面料 做网站wordpress不同页面广告
  • 邯郸网站制作设计wordpress 创建网站
  • 建设网站好公司哪家好wape
  • 郑州彩票网站开发宁波营销型网站建设
  • 中国联通网站备案网站后台更新文章 前台不显示
  • p2p网站建设源码如何在国外网站做翻译兼职
  • 绵阳银行网站建设专门app软件开发公司
  • 手工建站与模板网站的区别给视频做特效的网站
  • 东莞最便宜网站建设网页代码查看
  • 网站搜索查询建网站需要哪些技术
  • 京东网站开发多少钱建设集团网站方案
  • 郑州做网站的大公司wordpress 算数 验证码
  • 网站建设的需求要素一个网站有多大
  • 惠州企业自助建站人力资源公司加盟合作
  • 城乡建设部网站混凝土7天强度免费域名注册永久
  • 做水印的网站建设信用卡银行积分商城网站
  • 赣州省住房和城乡建设厅网站大气网站首页模板
  • 做网站一定要域名吗网页设计素材模版