米爾科技提醒您:您的瀏覽器版本過低或者使用了兼容模式,為了獲得更好的瀏覽體驗,建議使用IE10以上的瀏覽器或使用極速模式。 請升級瀏覽器以獲得更好的體驗!

    1. <u id="wn2pw"><tr id="wn2pw"></tr></u><wbr id="wn2pw"><table id="wn2pw"></table></wbr>

      1. <acronym id="wn2pw"></acronym>
        1. 我用STM32MP1做了個疫情監控平臺4—功能完善界面重新設計

          文章來源:米爾科技 發布日期:2020.5.25 瀏覽次數:2251

          1.前言

          之前我用STM32MP1和Qt實現了疫情監控平臺,有幸被【STM32單片機】官方公眾號轉發分享,感覺還是很有成就感的。

          這周末又把功能進一步完善了一下,界面重新設計等。實際運行界面:

          2.界面展示

          原來的界面很簡單,只有國內疫情數據展示:

          現在的界面:

          STM32MP1開發板運行效果:

          3.新增功能

          • UI重新設計,仿平板界面
          • 新增海外疫情數據顯示和國內零病例城市數據顯示
          • 新增疫情新聞顯示,使用html模板文件的方式實現富文本的顯示
          • 5分鐘自動更新,可通過開關選擇是否開啟
          • 新增IP自動定位功能
          • FontAwesome字體圖標庫的使用
          • 自定義標題欄按鈕,可點擊圖標關閉窗口,手動更新等

          4.API 接口說明

          所使用到的幾個接口地址:

          根據請求的IP地址,返回定位的城市名稱和經緯度
          http://ip-api.com/json/?lang=zh-CN
          
          國內實時疫情數據,新增/確診/疑似/零病例城市等
          http://view.inews.qq.com/g2/getOnsInfo?name=disease_h5
          
          海外疫情數據和國內疫情新聞信息 
          http://view.inews.qq.com/g2/getOnsInfo?name=disease_other
          
          最新謠言和辟謠信息,接口未使用,沒有移植openssl,暫時不支持https
          https://vp.fact.qq.com/loadmore?page=0 

          5.多個接口數據的獲取和解析

          和上一個版本最大的區別就是,上一版只使用了1個API。這次共使用了3個接口地址,而且每個接口地址返回的JSON數據是不同的,所以需要分別get這4個接口地址,然后調用不同的JSON解析函數。即每次更新時,apiID=0,先獲取接口1的數據,調用接口1的解析函數,然后apiID=1,獲取接口2的數據,調用接口2的解析函數,直到apiID=2,所有的數據獲取完畢,不再觸發新的get請求,直到下一次數據更新:

           /* 數據*/
          	//IP定位接口
          	QString apiUrl_0 = "http://ip-api.com/json/?lang=zh-CN";
          	//國內疫情數據
              QString apiUrl_1 = "http://view.inews.qq.com/g2/getOnsInfo?name=disease_h5";
          	//全球疫情數據和疫情新聞信息
              QString apiUrl_2 = "http://view.inews.qq.com/g2/getOnsInfo?name=disease_other";	
          	/*謠言接口,未使用*/
              QString apiUrl_3 = "https://vp.fact.qq.com/loadmore?page=0";
          
              qint8 apiID = 0;	//0->3: api_0->api_3
          
          	/*以上接口數據對應的解析函數*/
              void parseApi_0(QByteArray str);
              void parseApi_1(QByteArray str);
              void parseApi_2(QByteArray str);
          	/*謠言信息解析,未使用*/
              void parseApi_3(QByteArray str); 

          由于板子上的系統還沒有移植openssl,所以不支持https的接口地址,api3在實際中沒有使用。

          IP定位接口返回的JSON數據:

          解析函數:

          void Dialog::parseApi_0(QByteArray str)
          {
              cJSON *root_obj;
              root_obj = cJSON_Parse(str);
              if(!root_obj)
                  qDebug() << "ip api error";
              else
              {
                  QString status = cJSON_GetObjectItem(root_obj, "status")->valuestring;
                  qDebug() << status;
                  if(status == "success")
                  {
                      QString city = cJSON_GetObjectItem(root_obj, "city")->valuestring;
                      QString query = cJSON_GetObjectItem(root_obj, "query")->valuestring;
                      qDebug() << city << query;
                  }
              }
              cJSON_Delete(root_obj);
          } 

          其他接口JSON數據的解析,都是差不多的,這里不再贅述。

          6. FontAwesome字體圖標庫的使用

          在這次新版本中,我首次使用了FontAwesome字體圖標庫,圖標顯示效果:在這里插入圖片描述

          使用起來非常方便,簡單。首先把圖標庫里的ttf字體文件添加到Qt工程里,通過以下代碼實現圖標顯示。

          使用方法可以參考:Qt字體圖標庫fontawesome和pixeden使用示例

          標簽或者按鈕添加圖標背景:

          #include  
          void MainWindow::iconDemo()
          {
              //fontawesome-webfont.ttf圖標庫示例
              //http://www.fontawesome.com.cn/
              int fontId_fws = QFontDatabase::addApplicationFont(":/icon/fontawesome-webfont.ttf"); 
              QString fontName_fws = QFontDatabase::applicationFontFamilies(fontId_fws).at(0);     
              QFont iconFont_fws = QFont(fontName_fws);
              iconFont_fws.setPixelSize(50);     //設置圖標大小
          
              //標簽添加圖標背景
              ui->lbe_fws->setFont(iconFont_fws);
              ui->lbe_fws->setText(QChar(0xf185));   //圖標ID
              ui->lbe_fws->setStyleSheet("color: rgb(255, 0, 0);");
          
              //按鈕添加圖標北京
              ui->btn_fws->setFont(iconFont_fws);
              ui->btn_fws->setText(QChar(0xf0e7));    //圖標ID
              ui->btn_fws->setStyleSheet("color: rgb(0, 255, 0);");  
          } 

          其中0xf0e7是圖標對應的代碼,可以在官網上找到。目前,圖標庫里包括675個圖標,而且是矢量的,這意味著可以隨意的縮放而不用擔心不清晰,大小顏色都可以在代碼里設置。

          類似的圖標庫還有pixeden等等,pixeden里面的圖標更豐富,而且是已經分好類的,但是免費的少,收費的多。

          7.代碼下載

          整個Qt工程代碼已經開源,如果你已經關注了我的公眾號(ID:mcu149),可以在后臺回復STM32MP1,我會把Qt工程源碼發送給你,代碼兼容Qt4/Qt5。

          當然,你也可以在以下開源平臺獲取到最新的Qt工程:

          https://gitee.com/whik/qte_2019_ncov


          本文來自米爾科技,原文地址: http://www.www.yumyahyay.com/resource/541.asp,轉載請注明出處。

          国产av在在免费线观看,欧美日韩国产在线一区二区,中文无码热在线视频,亚洲免费一区二区三区,特级无码毛片免费视频,日韩日韩a无v码直接观看,爽爽午夜影视窝窝看片 精品国产自在现线拍在线,无码专区人妻系列日韩,色婷婷色综合缴情网站,猛男操的我高潮连连,国产片av国语在线观看手机版,久久人人97超碰精品,亚洲最大AV网站在线观看 欧美肥老太牲交视频,国内精品自在自线免费,欧美国产日产,精品亚洲伊人久久一下,亚洲欧美国产综合页,日本高清色系视频在线观看,东京热中文高清久久av加勒比 欧美 av亚洲 av国产 制服,高清拍拍拍无挡视频免费1000,狠狠色丁香婷婷久久综合,成视频在线,国产亚洲人成网线在线播放va,久久久久人人人人超碰在,国95国产人在线成免费视频95 国产av在在免费线观看,欧美日韩国产在线一区二区,中文无码热在线视频,亚洲免费一区二区三区,特级无码毛片免费视频,日韩日韩a无v码直接观看,爽爽午夜影视窝窝看片 免费国产自线拍一欧美视频,久青草资源福利视频,伊人婷婷色香五月综合缴缴情,久久这里只有精品首页,在线看播放免费网站,国产福利第一视频在线播放,中文字幕无线码一区2020青青 真人啪视频免费视频无码,人妻AV乱片AV出轨AV,色久久综合一本1道,伊人久久无码中文字幕,日本岛国在线无码AV一区,久久超碰色中文字幕超清,爆乳无码AV在线观看
          AV无码东京热亚洲男人的天堂,315电影网A级毛片,深夜A级毛片视频免费,亚洲日本VA午夜在线电影,日本无码免费不卡AV二区,在线看午夜福利片国产,亚洲中文字幕aⅴ天堂 久久偷拍国产在线,国产精品综合色区小说,亚洲毛片不卡AV在线播放一区,夜夜爽88888免费视频,黄网站色视频免费观看,国产美女牲交视频,亚洲国产精品电影人久久 国内精品自线在拍,日韩一区二区三不卡高清,伊人中文字幕无码专区视频在线播放网站,看全黄大色黄大片美女蓝光在线看,无码av高清毛片在线看,人人超人人超碰超国产 黄网站色成年片在线观看,亚洲日韩色欧另类欧美,孕妇被弄到高潮的视频,国产V片在线播放免费,韩国三级在线看免费,国产熟妇乱子伦视频在线观看,天堂AV旡码AV毛片毛片免费 国产精品美女久久久网站,国产在线精品亚洲第一网,久久无码高潮喷水,精品久久久无码中文字幕,无码日本有码中文字幕,色偷偷色噜噜,国产女人高潮抽搐视频360 国产亚洲色视频在线,亚洲AV一宅男色影视,亚洲国产欧美在线观看片不卡,亚洲综合色在线视频久,黄色A片视频免费看,亚洲第一AV无码专区,国产福利一区二区精品秒拍 免费一级高潮喷吹A片,亚洲avav天堂av在线网,中文字幕亚洲无线码一区,熟妇的荡欲欧美在线观看,日本大片免A费观看视频无码,久人人97超碰香蕉987,夜夜爽8888天天躁夜夜躁狠狠 欧美色色免费能直接看黄的视频,亚洲AVAVAV天堂电影影片,伊人影院蕉久影院在线99,欧美波霸巨爆乳无码视频,亚洲精品久久久久中文字幕一区,国产公开久久人人97超碰 久久爱www免费国产人成,人乳喂奶AV无码,激情五月伊人色综合,久久精品免费一区二区,五十六十日本老熟妇乱,狠狠色狠狠色综合日日91,亚洲AV无码不卡无码 中文字幕无码亚洲视频,人人爽人人爽人人爽,伊人婷婷色香综合缴缴情,欧美操逼电影无码,日本免费高清一本视频,人人超人人超碰超国产香蕉,不一样的视频免费观看