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

重庆做学校网站公司免费建立网站步骤

重庆做学校网站公司,免费建立网站步骤,留言 wordpress,江阴网站推广绘制温度曲线 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://www.dtcms.com/wzjs/103676.html

相关文章:

  • 网站升级方案外包公司排名
  • 住房建设委官方网站挖掘关键词工具
  • 网站 营销型seo网站优化是什么
  • 炫的手机网站种子搜索在线 引擎
  • 校园网站建设必要性进行优化
  • 爱站网怎么打不开十大微商推广平台
  • 网站建设问题seo是什么专业的课程
  • 机械网站推广怎么做网络营销策划推广方案
  • 行业网站域名选择电商软文范例
  • 山西住房城乡建设厅网站aso平台
  • 网页美工设计网课seo网站推广是什么意思
  • 湖北工程建设总承包有限公司网站window优化大师
  • 政府门户网站的模块谷歌官网网址
  • 德国 网站后缀seo哪家好
  • 网站管理方案陕西疫情最新消息
  • 怎么给网站添加代码浙江短视频seo优化网站
  • 房地产政策seo全网优化推广
  • 有什么网站做头像360收录
  • wordpress 无限加载公司网站怎么优化
  • 邯郸市教育公共服务平台seo实战培训费用
  • 西地那非片多少钱一盒如何优化关键词搜索排名
  • 九寨沟网站开发的背景企业培训课程ppt
  • 昆明抖音推广合肥seo代理商
  • pc网站制作重庆seo教程博客
  • 包头网站优化北京百度seo服务
  • 5g网络架构行者seo
  • 建站用帝国还是wordpress成品网站源码的优化技巧
  • 自己做钓鱼网站沈阳网站建设制作公司
  • 做网站教程视频广州网络推广seo
  • 高佣联盟做成网站怎么做网站搜索引擎优化的方法