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

    1. <tt id="umw5u"></tt>
      <sub id="umw5u"></sub>

        我用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.shurrj.com/resource/541.asp,轉載請注明出處。

        成人视频手机免费播放,久久色综合在,亚洲一区二区经典在线播放,日韩中文字幕精品乱码,狠狠色噜狠狠狠狠的777米奇,日韩A片R级无码中文 久久久久青草线蕉综合,国产自拍第,国产精品极品清纯露脸最新,中文av人妻av有码中文,亚洲AV永久无码嘿嘿嘿,久青草无码视频在线观看 久久久噜噜噜久久熟女色,欧美老汉色老汉首页a亚洲,亚洲国产欧洲综合997久久,日本无码高清中文字幕视频,亚洲аv电影天堂网无码,国产在线观看香蕉视频 7777欧美成是人在线观看,欧美日韩乱码高清视频,国产成人a视频高清在线观看,av小电影在线,久久精品青青大伊人av,久久夜色精品国产,一级少妇A片无码专区 精品久久久久久中文字幕2020,国自产拍AV在线天天更新,日日摸夜夜摸狠狠爱,伊人大香线蕉久久久,99国产这里有精品视频,无限资源日本官网 亚洲国产在线精品一区在,港台经典三级,亚欧激情无码视频在线播放,欧洲日韩aV在线无码试看,日本高清h色视频在线观看,中文字幕亚洲无线码 亚洲蜜芽在线精品一区,婷婷色五月另类综合视频,成年女人喷潮毛片免费播放,人妻天天爽夜夜爽精品视频,熟妇的荡欲欧美在线观看,亚洲色欲色欲WWW在线看 国产香蕉大伊利视频,亚洲成a人v影院色老汉影院,97久久超碰国产精品…,欧美日韩在线无码,久久国产亚洲高清观看,亚洲AV永久无码,日本亚欧乱色视频在线 亚洲18禁速播影院,久久精品人人槡人妻人人玩,国产在线精选免费视频,免费一本色道久久一区,福利一区二区微拍视频,综合亚洲伊人午夜网
        色偷偷亚洲男人的天堂,肉感熟女巨人乳在线观看,亚洲国产精品无码中文字,国产99视频精品观看蕾,中美日韩亚洲高清在线,天堂国产+人+综合+亚洲欧美 亚洲久久天堂无码国产,学生精品国自产拍中文字幕,亚洲欧美在线综合色影视,最新四色米奇影视777在线看,日本日本乱码伦视频免费,人妻av无码中文专区久久 日本老熟妇无码色视频网站,中文字幕人成乱码熟女免费,国产精品资源一区二区,亚洲毛片不卡aV在线播放一区,午夜性刺激在线看免费y 狠狠任你日线观看免费,亚洲AV中文无码字幕色本草,国产AV一二三无码影片,欧美牲交作爱在线AAV,2020最新无码福利视频,国产一级做a 好男人影视在线观看,人人人澡人人肉久久精品,色欲天天婬色婬香综合网,中文字幕精品一区二区,青青日本视频,保利海上五月花,日本三级香港三级亚洲三级 思思99在热线女精品视频,色狠狠色偷偷色噜噜色,奇米影色777四色在线,亚洲欧洲日韩淙合久久,无码高潮尖叫av,奇米影视第四色 首页 美女免费高清视频黄是免费,一级A片高潮潮喷免费看,亚洲首页在线无码观看,最近最新中文字幕大全电影,a∨在线视频播放,一级a性色生活片久久无码 7777欧美成是人在线观看,欧美日韩乱码高清视频,国产成人a视频高清在线观看,av小电影在线,久久精品青青大伊人av,久久夜色精品国产,一级少妇A片无码专区 亚洲18禁速播影院,久久精品人人槡人妻人人玩,国产在线精选免费视频,免费一本色道久久一区,福利一区二区微拍视频,综合亚洲伊人午夜网 国产亚洲国产v网站在线,男女免费视频观看在线,中文精品久久久久国产,欧美一级旡码,国产午夜人做人免费视频网站,99久热re在线精品99re8热视频