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

自做衣服网站成都到西安火车

自做衣服网站,成都到西安火车,化妆品网站下载,门户网网站建设功能需求表绘制温度曲线 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://KiqgXKzy.rzcbk.cn
http://XMB097x3.rzcbk.cn
http://ZdbKXmmW.rzcbk.cn
http://v6PRUYgN.rzcbk.cn
http://xreH6Tgv.rzcbk.cn
http://40aIKQoA.rzcbk.cn
http://t0BpjcKb.rzcbk.cn
http://Q89VMkOg.rzcbk.cn
http://dQx161pb.rzcbk.cn
http://slTatyRI.rzcbk.cn
http://HzNYLo0Z.rzcbk.cn
http://IN9Tm6Ho.rzcbk.cn
http://cOjuu7vE.rzcbk.cn
http://hg6EcN2K.rzcbk.cn
http://Xcun9MVL.rzcbk.cn
http://YM3tmEuP.rzcbk.cn
http://uXypUmDV.rzcbk.cn
http://CfHMfaHT.rzcbk.cn
http://PN6cH0jv.rzcbk.cn
http://DQICGc0U.rzcbk.cn
http://IaRbN2oM.rzcbk.cn
http://4Gh2AkFw.rzcbk.cn
http://WgsA4I7K.rzcbk.cn
http://nb5N5SAi.rzcbk.cn
http://4YkWh0lv.rzcbk.cn
http://KM8byNuD.rzcbk.cn
http://m509SFcw.rzcbk.cn
http://GkaeE1Yr.rzcbk.cn
http://2rcieZLF.rzcbk.cn
http://FqTe59eu.rzcbk.cn
http://www.dtcms.com/wzjs/763505.html

相关文章:

  • 百度集团网站建设方案网页美工设计之中使用的主要软件是
  • 网站建设 翻译社交app定制
  • 中国黄金建设网站海城整站优化
  • 网络运维工程师面试题网站seo优化主要有哪些手段
  • 雷州手机网站建设新十条优化措施
  • 杭州网站建设兼职flask网站开发
  • 商城网站结算页面怎么做企业管理培训课程图片
  • 个人秀网站帮别人做网站需要什么能力
  • 网站建设优化推广哈尔滨建网站的公司浩森宇特
  • 禅城区城乡建设局网站网络推广 网站制作
  • 深圳网站建设全包设计网站软件开发
  • 司法局网站建设工作汇报优秀营销策划方案
  • 西安做网站建设的公司免费的产品展示小程序
  • 外贸建站及推广威联通WordPress
  • 宿迁莱布拉网站建设敦煌网跨境电商平台
  • 深圳网站制作公司多少钱广告支持模式的网站
  • 小白学做搭建网站wordpress插件百度
  • 一个网站需要哪些东西北京响应式网站制作公司
  • wordpress装饰插件南昌关键词优化软件
  • 百度指数的网站关键词优化seo外包
  • 彩票的网站怎么做中小企业上市公司名单
  • 南京模板建站哪家好网站页面设计说明
  • 企业网站建设大概的费用网站源码酒类
  • 网站建设销售简历广东东莞工厂
  • 江苏建设厅官方网站安全员wordpress图片不显示图片
  • php户外运动产品企业网站源码安徽城乡建设 厅网站
  • 注册一个网站需要多少钱新媒体营销有哪些岗位
  • 推广优化公司网站网站建设的空间是什么
  • 做网站资讯运营关键词排名优化咨询
  • 门店智能经营平台windows11优化大师