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

  • <i id="qs2ir"></i>

    1. <u id="qs2ir"><sub id="qs2ir"></sub></u>
        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.yszgovv.com/resource/541.asp,轉載請注明出處。

          色综合久久无码中文字幕,色综合热无码热国产,图片区亚洲欧美另类中文,亚洲中文字幕无码一区,日韩女人性开放视频,又色又爽又黄的三级视频 亚洲 欧美 国产 综合视频,国产高清视频在线美女观看,人妻无码手机在线中文,人人天天夜夜曰狠狠狠狠,国产乱伦av天天看中文有码 中文字幕日本一道视频,欧美特级牲交播放视频,大香蕉伊人3线视--,久久色综合久久色综合久久色,天天日夜夜干人人啪夜夜射 欧美日本亚洲国产在线观18,亚欧美无遮挡HD高清在线视频,中文专区欧美三级在线,亚洲系列欧美系列第1页,欧美亚洲国产片在线播放 久青草国产在线观看视频,888第米奇四色极速视频,亚洲女初尝黑人巨高清,天天澡天天添天天摸97影院,99久久香蕉国产线看观看 亚洲 欧美 国产 综合视频,国产高清视频在线美女观看,人妻无码手机在线中文,人人天天夜夜曰狠狠狠狠,国产乱伦av天天看中文有码 在线观看精品国产福利片,国色天香在线播放,日本不卡av一区二区三区,部长侵犯漂亮人妻在线看,久久频这里精品99香蕉,日本欧美全球大胆免费视频
          日本三级在线观看中字,婷婷色婷婷开心五月四房播播,免费人做人爱完整版视频在线,JAPANESETUBE日本护士,人与人性恔配视频 欧美俄罗斯40老熟妇,单亲互相满足性需求,美女极品粉嫩美鮑20P图,亚洲处破女18分钟,日本做爰毛片免费观看,免费伦费影视在线观看 天堂va欧美ⅴa亚洲va视频,日本红怡院一本道,国产欧美整片v,亚欧乱色视频,天天鲁夜夜啪2019,国产免费视频在线,国产v亚洲v欧美v专区 天堂AⅤ日韩欧美国产,亚洲欧洲自拍拍偷午夜色,大胆人人体艺天天人体,一本道99综合高清,67194免费观看网站,免费播放AV网站的地址 天堂va欧美ⅴa亚洲va视频,日本红怡院一本道,国产欧美整片v,亚欧乱色视频,天天鲁夜夜啪2019,国产免费视频在线,国产v亚洲v欧美v专区 国内大学自拍在线偷拍,国产乱对白刺激视频,亚洲国产在线观看在5388,国产人碰人摸人爱免费视频,男女裸交真人全过程,亚洲成AV人片在一线观看 欧洲美女牲交在线看,GOGO免费人体视频在线观看,国模私密浓毛私拍人体视频,无码99久热只有精品视频在线,久久久精品2019中文字幕 欧美成人网站,欧美整片欧洲熟妇色视频,欧美成人无砖专区一中文字目,欧美在线成本人视频,欧美日韩一区精品视频一区二区 亚洲18禁速播影院网红情趣,4480yy午夜福利免费,无码无遮拦午夜福利院,亚洲色欲色欲色欲www,亚洲色欲色欲大片,岛国爱情动作片 天堂国产+人+综合+亚洲欧美,国产V综合V亚洲欧美大,色-综合-欧美-亚洲-国产,日韩AV在线 人人爽人人爽人人片AV亚洲,国产偷v国产偷v国产高清