00 前言說明
從事Qt開發(fā)十年有余,一開始是做C#.NET開發(fā)的,因?yàn)轫?xiàng)目需要,轉(zhuǎn)行做嵌入式linux開發(fā),在嵌入式linux上做可視化界面開發(fā)一般首選Qt,當(dāng)然現(xiàn)在可選的方案很多比如安卓,但是十多年前那時(shí)候板子性能低,安卓在這個(gè)上面跑的話卡成屎,當(dāng)時(shí)的內(nèi)存大概是128MB左右,Qt也是主要用QWidget,剛出來的qml在這個(gè)上面跑個(gè)最簡單的示例也是卡成屎,這也造成了本人一直對qml的印象不大好,非常依賴GPU硬件。所以也一直沒有怎么去學(xué)習(xí)qml,主要深耕在qwidget領(lǐng)域,現(xiàn)在想學(xué)的時(shí)候,心有余而力不足,包括現(xiàn)在從qmake轉(zhuǎn)向cmake,年紀(jì)大了學(xué)不動了,哎年輕真好。文章來源:http://www.zghlxwxcb.cn/news/detail-623119.html
學(xué)習(xí)Qt也是一個(gè)漸進(jìn)的過程,量變產(chǎn)生質(zhì)變,一點(diǎn)一滴積累,誰都不可能一蹴而就的,在編程的這條路上其實(shí)是很孤獨(dú)的,要能學(xué)會左手溫暖右手。別看我QtWidget水平比很多人高一點(diǎn),其實(shí)全國也就幾萬名開外,你們是不知道天外有天,人外有人!應(yīng)該到處走走,不要坐井觀天!因?yàn)槲矣龅竭^幾十個(gè)水平比我厲害的多了去了的,這還僅僅是冰山一角!真正的大佬一般不混群也不混論壇的,低調(diào)得很!可能這就是所謂的悶聲發(fā)大財(cái)。此情此景我想吟詩一首:誤入IT悔無聲,單槍匹馬夜挑燈,一入Qt深似海,從此脂粉不沾身。此情此景我想再吟詩一首:Qt群里行人稀,常有車手較高低,如今車道依舊在,不見當(dāng)年老司機(jī)。文章來源地址http://www.zghlxwxcb.cn/news/detail-623119.html
- 國內(nèi)站點(diǎn):https://gitee.com/feiyangqingyun
- 國際站點(diǎn):https://github.com/feiyangqingyun
- 個(gè)人主頁:https://blog.csdn.net/feiyangqingyun
- 視頻主頁:https://space.bilibili.com/687803542
01 可視化大屏電子看板系統(tǒng)
- 采用分層設(shè)計(jì),整體總共分三級界面,一級界面是整體布局,二級界面是單個(gè)功能模塊,三級界面是單個(gè)控件。
- 子控件包括餅圖、圓環(huán)圖、曲線圖、柱狀圖、柱狀分組圖、橫向柱狀圖、橫向柱狀分組圖、合格率控件、百分比控件、進(jìn)度控件、設(shè)備狀態(tài)面板、表格數(shù)據(jù)、地圖控件、視頻控件等。
- 二級界面可以自由拖動懸浮,支持最小化隱藏、最大化關(guān)閉、響應(yīng)雙擊自定義標(biāo)題欄。
- 數(shù)據(jù)源支持模擬數(shù)據(jù)(默認(rèn))、數(shù)據(jù)庫采集、串口通信(需定制)、網(wǎng)絡(luò)通信(需定制)、網(wǎng)絡(luò)請求等,可自由設(shè)定每個(gè)子界面的采集間隔即數(shù)據(jù)刷新頻率。
- 采用純QWidget編寫,親測Qt4.6到Qt6.6任意版本,理論上支持后續(xù)其他Qt版本。
- 超強(qiáng)跨平臺,親測windows、linux、mac、國產(chǎn)uos、國產(chǎn)銀河麒麟kylin等系統(tǒng),效果完美,同時(shí)還支持嵌入式linux比如樹莓派、香橙派、全志、imx6等。
- 同時(shí)集成了自定義控件、qchart餅圖、echart地圖等功能。
- 內(nèi)置多套配色風(fēng)格樣式(紫色、藍(lán)色、深藍(lán)、黑色),默認(rèn)紫色,自適應(yīng)任意分辨率。
- 可設(shè)置系統(tǒng)標(biāo)題、目標(biāo)分辨率、布局方案,啟動立即應(yīng)用。
- 可設(shè)置主背景顏色、面板顏色、十字線游標(biāo)顏色等各種顏色。
- 可設(shè)置多條曲線不同顏色,沒有設(shè)置顏色的情況下內(nèi)置多套精美顏色隨機(jī)應(yīng)用。
- 可設(shè)置標(biāo)題欄背景顏色、文字顏色。
- 可設(shè)置曲線圖表背景顏色、文字顏色、網(wǎng)格顏色。
- 可設(shè)置正常顏色、警戒顏色、報(bào)警顏色、禁用顏色、百分比進(jìn)度顏色。
- 可分別設(shè)置各種字體大小,比如全局字體、軟件名稱、標(biāo)題欄、子標(biāo)題欄、加粗標(biāo)簽等。
- 可設(shè)置標(biāo)題欄高度、表頭高度、行高度。
- 曲線支持游標(biāo)、定位線、懸停高亮數(shù)據(jù)點(diǎn)、懸停顯示值。
- 柱狀圖支持頂部(可設(shè)置頂端、上部、中間、底部)顯示數(shù)據(jù),全部自適應(yīng)計(jì)算位置。
- 支持平滑曲線,內(nèi)置多種平滑曲線算法,還支持面積圖平滑。
- 面積圖填充顏色可選多種規(guī)則比如單色透明度填充、透明度漸變填充等。
- 數(shù)據(jù)庫支持sqlite、mysql、postgresql、oracle、國產(chǎn)人大金倉等數(shù)據(jù)庫。
- 主界面直接鼠標(biāo)右鍵切換布局、配色方案、關(guān)閉開啟某個(gè)二級窗體。
- 自動記憶所有子窗口的大小和位置,下次啟動立即應(yīng)用。
- 動態(tài)加載布局方案菜單,可以動態(tài)新建布局、恢復(fù)布局、保存布局、另存布局等,用戶可以制造任意布局。
- 二級窗體,雙擊從主窗體分離出來浮動,可以自由調(diào)整大小。再次雙擊標(biāo)題欄最大化,再次雙擊還原。
- 子模塊也可以全屏顯示作為一個(gè)大屏,這樣就可以一個(gè)大屏拓展出多個(gè)子大屏,放大查看子模塊的數(shù)據(jù)詳情,適用多屏展示。
- 每個(gè)模塊都可以自定義采集速度,如果是數(shù)據(jù)庫采集會自動排隊(duì)處理,后期還可以拓展每個(gè)子模塊都獨(dú)立的數(shù)據(jù)庫采集。
- 提供系統(tǒng)設(shè)置模塊進(jìn)行整體的配置參數(shù)設(shè)置,效果立即應(yīng)用。
- 提供精美炫酷的大屏地圖模塊,包括靜態(tài)圖片、閃爍效果、遷徙效果、世界地圖、區(qū)域地圖等,可指定點(diǎn)的經(jīng)緯度坐標(biāo),識別單擊響應(yīng),可以做地圖跳轉(zhuǎn)等,每個(gè)點(diǎn)都可以不同的顏色和提示信息。
- 除了提供大屏系統(tǒng)外,還將每個(gè)模塊都做了獨(dú)立的模塊示例界面,每個(gè)模塊都可以獨(dú)立學(xué)習(xí)使用,里面用到的控件也單獨(dú)做了控件示例界面,方便學(xué)習(xí)每個(gè)控件如何使用。
- 非常詳細(xì)的開發(fā)和使用手冊,其中包括數(shù)據(jù)庫說明、模塊對照圖、控件對照圖、項(xiàng)目結(jié)構(gòu)、代碼說明(精確到每個(gè)類)、演示demo、使用方法等。
02 物聯(lián)網(wǎng)管理平臺
2.1 軟件模塊
- 設(shè)備監(jiān)控模塊,包括數(shù)據(jù)監(jiān)控(表格形式展示)、設(shè)備面板(面板形式展示)、地圖監(jiān)控(地圖形式展示)、曲線監(jiān)控(曲線形式展示)。
- 數(shù)據(jù)查詢模塊,包括報(bào)警記錄、運(yùn)行記錄、操作記錄。
- 系統(tǒng)設(shè)置模塊,包括基本設(shè)置、端口管理、控制器管理、探測器管理、報(bào)警聯(lián)動、類型設(shè)置等。
- 其他設(shè)置模塊,包括用戶管理、地圖管理、位置調(diào)整、組態(tài)設(shè)計(jì)、設(shè)備調(diào)試等。
2.2 基礎(chǔ)功能
- 設(shè)備數(shù)據(jù)采集,支持串口、網(wǎng)絡(luò),串口可設(shè)置串口號、波特率,網(wǎng)絡(luò)可設(shè)置IP地址、通訊端口。
- 每個(gè)端口支持采集周期時(shí)間,默認(rèn)1秒鐘一個(gè)設(shè)備。
- 支持設(shè)置通訊超時(shí)次數(shù),默認(rèn)3次。
- 支持最大重連時(shí)間,用于重新讀取離線的設(shè)備。
- 控制器信息,能夠添加控制器名稱,選擇控制器地址、控制器型號,設(shè)置該控制器下面的探測器數(shù)量。
- 探測器信息,能夠添加位號、探測器型號、氣體種類、氣體符號、高報(bào)值、低報(bào)值、緩沖值、清零值、是否啟用、報(bào)警聲音、背景地圖、存儲周期、數(shù)值換算小數(shù)點(diǎn)位數(shù)、報(bào)警延時(shí)時(shí)間、報(bào)警的類型(HH,LL,HL)等。
- 類型管理可配置控制器型號、探測器型號、氣體種類、氣體符號等。
- 地圖支持導(dǎo)入和刪除,所有的探測器在地圖上的位置可自由拖動保存。
- 端口信息、控制器信息、探測器信息、類型信息、用戶信息等,都支持導(dǎo)入、導(dǎo)出、導(dǎo)出到excel、打印。
- 運(yùn)行記錄、報(bào)警記錄、操作記錄,都支持多條件組合查詢,比如時(shí)間段、控制器、探測器等,所有記錄支持導(dǎo)出到excel/pdf和打印。
- 運(yùn)行記錄、報(bào)警記錄、操作記錄都可刪除指定時(shí)間范圍內(nèi)的數(shù)據(jù)。
- 系統(tǒng)設(shè)置可選擇對應(yīng)表最大保存記錄數(shù),自動清理早期數(shù)據(jù),留出足夠的空間存儲重要的數(shù)據(jù)。
- 報(bào)警短信轉(zhuǎn)發(fā),支持多個(gè)接收手機(jī)號碼,可設(shè)定發(fā)送間隔,比如即時(shí)發(fā)送或者6個(gè)小時(shí)發(fā)送一次所有的報(bào)警信息,短信內(nèi)容過長,自動拆分多條短信。
- 報(bào)警郵件轉(zhuǎn)發(fā),支持多個(gè)接收郵箱,可設(shè)定發(fā)送間隔,比如即時(shí)發(fā)送或者6個(gè)小時(shí)發(fā)送一次所有的報(bào)警信息,支持附件發(fā)送。
- 設(shè)置軟件的中文標(biāo)題、英文標(biāo)題、logo路徑、版權(quán)所有等。
- 開關(guān)設(shè)置開機(jī)運(yùn)行、報(bào)警聲音、自動登錄、記住密碼等。
- 報(bào)警聲音可設(shè)置播放次數(shù),界面風(fēng)格樣式提供18套皮膚文件選擇。
- 用戶管理,包括用戶權(quán)限配置,不同用戶可以有不同模塊的權(quán)限。
- 用戶登錄和用戶退出,可以記住密碼和自動登錄,超過三次報(bào)錯(cuò)提示并關(guān)閉程序。
- 四種監(jiān)控模式,設(shè)備面板監(jiān)控、地圖監(jiān)控、表格數(shù)據(jù)監(jiān)控、曲線數(shù)據(jù)監(jiān)控,可自由切換,四種模式下都實(shí)時(shí)展示采集到的數(shù)據(jù),報(bào)警閃爍等。
- 報(bào)警繼電器聯(lián)動,一個(gè)位號可以跨串口聯(lián)動多個(gè)模塊和繼電器號,支持多對多。
2.3 特色功能
- 通信協(xié)議支持modbus_com、modbus_tcp_rtu,后期拓展mqtt等協(xié)議。
- 數(shù)據(jù)源除了真實(shí)的硬件設(shè)備采集,還可選數(shù)據(jù)庫采集,這樣用戶可以安排其他程序員比如java程序員將前端采集好的數(shù)據(jù)放到數(shù)據(jù)庫,本系統(tǒng)直接從數(shù)據(jù)庫采集即可。數(shù)據(jù)庫采集模式可以作為通用的系統(tǒng)使用,更適合多人多系統(tǒng)協(xié)作。
- 智能跳過超時(shí)的設(shè)備,加快對在線設(shè)備的采集速度,當(dāng)設(shè)備數(shù)量很多的時(shí)候尤其有用。
- 對智能跳過的超時(shí)的設(shè)備,在設(shè)定的重連時(shí)間自動采集一次,以便探測設(shè)備是否又重新上線。
- 每個(gè)探測器可控是否啟用,不啟用則不會采集,也不會在界面顯示,相當(dāng)于運(yùn)行階段臨時(shí)關(guān)閉。
- 探測器可設(shè)置緩沖值和報(bào)警延時(shí)時(shí)間,在該值附近波動產(chǎn)生的報(bào)警,不計(jì)入報(bào)警,只有持續(xù)處于報(bào)警值且超過報(bào)警延時(shí)時(shí)間才算真正報(bào)警,這樣可以規(guī)避很多波動導(dǎo)致的誤報(bào)。
- 探測器可設(shè)置存儲周期,按照設(shè)定的時(shí)間來存儲一條運(yùn)行記錄,可以按照重要程度對重要性高的設(shè)定存儲周期短一些,不重要的設(shè)定大一些,這樣可以節(jié)省不少的存儲空間,也保證了重要的數(shù)據(jù)及時(shí)存儲。
- 探測器可設(shè)置清零值,在一些高精度高靈敏的設(shè)備可能出廠的時(shí)候默認(rèn)值未必是0,需要設(shè)定清零值來表示初始值。
- 探測器可設(shè)置小數(shù)點(diǎn),用于計(jì)算后的真實(shí)數(shù)據(jù)控制小數(shù)點(diǎn)點(diǎn)位顯示,相當(dāng)于除以10、除以100、除以1000,這樣大部分的探測器數(shù)據(jù)直接通過小數(shù)點(diǎn)位設(shè)置控制真實(shí)換算后的值,極個(gè)別的需要特殊轉(zhuǎn)換的可以在通信協(xié)議中約定。
- 探測器報(bào)警的類型支持多種,有些設(shè)備是高于某個(gè)值高報(bào),低于某個(gè)值低報(bào),而有些設(shè)備是在最小值最大值范圍內(nèi)是高報(bào),低于最小值低報(bào),高于最大值正常。這樣可以分情況處理,涵蓋各種報(bào)警類型。
- 原創(chuàng)數(shù)據(jù)導(dǎo)入、導(dǎo)出、打印機(jī)制,跨平臺不依賴任何組件,瞬間導(dǎo)出數(shù)據(jù)。
- 導(dǎo)出到excel的記錄支持所有excel、wps等表格文件版本,不依賴excel等軟件。
- 高報(bào)顏色、低報(bào)顏色、正常顏色、默認(rèn)值顏色等,都可以自由設(shè)置。
- 支持云端數(shù)據(jù)同步,將本地采集到的數(shù)據(jù)實(shí)時(shí)同步到云端。
- 支持網(wǎng)絡(luò)轉(zhuǎn)發(fā)和網(wǎng)絡(luò)接收,網(wǎng)絡(luò)接收開啟后,軟件從udp接收數(shù)據(jù)進(jìn)行解析。網(wǎng)絡(luò)轉(zhuǎn)發(fā)支持多個(gè)目標(biāo)IP,這樣就實(shí)現(xiàn)了本地采集的軟件,自由將數(shù)據(jù)轉(zhuǎn)到客戶端,隨時(shí)查看采集到的數(shù)據(jù)。
- 自動記住用戶最后停留的界面以及其他配置信息,重啟后自動應(yīng)用。
- 報(bào)警自動切換到對應(yīng)的地圖,探測器按鈕閃爍,表格數(shù)據(jù)對應(yīng)顏色顯示。
- 雙擊探測器圖標(biāo),彈出對應(yīng)探測器詳細(xì)信息,可以根據(jù)需要定制回控操作。
- 數(shù)據(jù)庫支持多種,包括sqlite、mysql、sqlserver、postgresql、oracle、人大金倉等。
- 本地設(shè)備采集到的數(shù)據(jù)實(shí)時(shí)上傳到云端,以便手機(jī)APP或者web等其他方式提取。
- 自帶設(shè)備模擬工具,支持不同型號的多個(gè)設(shè)備數(shù)據(jù)模擬,同時(shí)還帶數(shù)據(jù)庫數(shù)據(jù)模擬,以便在沒有設(shè)備的時(shí)候測試數(shù)據(jù)。
- 標(biāo)準(zhǔn)modbus協(xié)議,各種控制器類型、探測器類型、種類、符號等全部自定義,非常靈活和強(qiáng)大,通信協(xié)議示例數(shù)據(jù)非常完整,通用各種modbus協(xié)議系統(tǒng),適用于各種應(yīng)用場景接入。
- 同時(shí)集成了串口通信、網(wǎng)絡(luò)通信、數(shù)據(jù)庫通信、數(shù)據(jù)導(dǎo)入導(dǎo)出打印、通信協(xié)議解析、界面UI、全局換膚等眾多組件和知識點(diǎn),非常適合新手入門和進(jìn)階。
- 支持xp、win7、win10、、win11、linux、mac、各種國產(chǎn)系統(tǒng)(UOS、中標(biāo)麒麟、銀河麒麟等)、嵌入式linux等系統(tǒng)。
- 注釋完整,項(xiàng)目結(jié)構(gòu)清晰,超級詳細(xì)完整的使用開發(fā)手冊,精確到每個(gè)代碼文件的功能說明,不斷持續(xù)迭代版本。
03 視頻監(jiān)控系統(tǒng)
3.1 軟件模塊
- 視頻監(jiān)控模塊,各種??啃〈绑w子模塊,包括設(shè)備列表、圖文警情、窗口信息、云臺控制、預(yù)置位、巡航設(shè)置、設(shè)備控制、懸浮地圖、網(wǎng)頁瀏覽等。
- 視頻回放模塊,包括本地回放、遠(yuǎn)程回放、設(shè)備播放、圖片回放、視頻上傳等。
- 電子地圖模塊,包括圖片地圖、在線地圖、離線地圖、路徑規(guī)劃等。
- 日志查詢模塊,包括本地日志、設(shè)備日志等。
- 系統(tǒng)設(shè)置模塊,包括系統(tǒng)設(shè)置(基本設(shè)置、視頻參數(shù)、數(shù)據(jù)庫設(shè)置、地圖配置、串口配置等)、錄像機(jī)管理、攝像機(jī)管理、輪詢配置、用戶管理等。
3.2 基礎(chǔ)功能
- 支持各種視頻流(rtsp、rtmp、http等)、視頻文件(mp4、rmvb、avi等)、本地USB攝像機(jī)播放。
- 支持多畫面切換,包括1、4、6、8、9、13、16、25、36、64畫面切換。
- 支持全屏切換,多種切換方式包括鼠標(biāo)右鍵菜單、工具欄按鈕、快捷鍵(alt+enter全屏,esc退出全屏)。
- 支持視頻輪詢,包括1、4、9、16畫面輪詢,可設(shè)置輪詢分組(輪詢預(yù)案)、輪詢間隔、碼流類型等。
- 支持onvif協(xié)議,包括設(shè)備搜索、云臺控制、設(shè)備控制(圖片參數(shù)、校對時(shí)間、系統(tǒng)重啟,抓拍圖片等)。
- 支持權(quán)限管理,不同的用戶可以對應(yīng)不同的模塊權(quán)限,比如刪除日志、關(guān)閉系統(tǒng)等。
- 數(shù)據(jù)庫支持多種,包括sqlite、mysql、sqlserver、postgresql、oracle、人大金倉等。
- 本地USB攝像機(jī)支持設(shè)置分辨率、幀率等參數(shù)。
- 所有??磕K都自動生成對應(yīng)的菜單用來控制顯示和隱藏,在標(biāo)題欄右鍵可以彈出。
- 支持顯示所有模塊、隱藏所有模塊、復(fù)位普通布局、復(fù)位全屏布局。
- 雙擊設(shè)備彈出實(shí)時(shí)預(yù)覽視頻,支持圖片地圖、在線地圖、離線地圖等。
- 攝像機(jī)節(jié)點(diǎn)拖曳到對應(yīng)窗體播放視頻,同時(shí)支持拖曳本地文件直接播放。
- 刪除視頻支持鼠標(biāo)右鍵刪除、懸浮條關(guān)閉刪除、拖曳到視頻監(jiān)控面板外刪除等多種方式。
- 圖片地圖上設(shè)備按鈕可自由拖動,自動保存位置信息。百度地圖上可以鼠標(biāo)單擊獲取經(jīng)緯度信息,用來更新設(shè)備位置。
- 視頻監(jiān)控面板窗體中任意通道支持拖曳交換,瞬間響應(yīng)。
- 封裝了百度地圖,視圖切換,運(yùn)動軌跡,設(shè)備點(diǎn)位,鼠標(biāo)按下獲取經(jīng)緯度等。
- 雙擊節(jié)點(diǎn)、拖曳節(jié)點(diǎn)、拖曳窗體交換位置等操作,均自動更新保存最后的播放地址,下次軟件打開自動應(yīng)用。
- 右下角音量條控件,失去焦點(diǎn)自動隱藏,音量條帶靜音圖標(biāo)。
- 支持視頻截圖,可指定單個(gè)或者對所有通道截圖,底部小工具欄也有截圖按鈕。
- 支持超時(shí)自動隱藏鼠標(biāo)指針、自動全屏機(jī)制。
- 支持onvif云臺控制,可上下左右移動云臺攝像機(jī),包括復(fù)位和焦距調(diào)整等。
- 支持任意onvif攝像機(jī),包括但不限于??怠⒋笕A、宇視、天地偉業(yè)、華為等。
- 可保存視頻,可選定時(shí)存儲或者單文件存儲,可選存儲間隔時(shí)間。
- 可設(shè)置視頻流通信方式tcp+udp,可設(shè)置視頻解碼是速度優(yōu)先、質(zhì)量優(yōu)先、均衡等。
- 可設(shè)置軟件中文名稱、英文名稱、LOGO圖標(biāo)等。
- 存儲的視頻文件支持導(dǎo)出到指定目錄,支持批量上傳到服務(wù)器。
3.3 特色功能
- 主界面采用??看绑w模式,各種組件以小模塊的形式加入,可自定義任意模塊加入。
- ??磕K可拖動任意位置嵌入和懸浮,支持最大化全屏,支持多屏幕。
- 雙重布局文件存儲機(jī)制,正常模式、全屏模式都對應(yīng)不同的布局方案,自動切換和保存,比如全屏模式可以突出幾個(gè)模塊透明顯示在指定位置,更具科幻感現(xiàn)代化。
- 原創(chuàng)onvif協(xié)議機(jī)制,采用底層協(xié)議解析(udp廣播搜索+http請求執(zhí)行命令)更輕量易懂易學(xué)習(xí)拓展,不依賴任何第三方組件比如gsoap。
- 原創(chuàng)數(shù)據(jù)導(dǎo)入導(dǎo)出機(jī)制,跨平臺不依賴任何組件,瞬間導(dǎo)出數(shù)據(jù)。
- 內(nèi)置多個(gè)原創(chuàng)組件,宇宙超值超級牛逼,包括數(shù)據(jù)導(dǎo)入導(dǎo)出組件(導(dǎo)出到xls、pdf、打印)、數(shù)據(jù)庫組件(數(shù)據(jù)庫管理線程、自動清理數(shù)據(jù)線程、萬能分頁、數(shù)據(jù)請求等)、地圖組件、視頻監(jiān)控組件、文件多線程收發(fā)組件、onvif通信組件、通用瀏覽器內(nèi)核組件等。
- 自定義信息框+錯(cuò)誤框+詢問框+右下角提示框(包含多種格式)等。
- 精美換膚,高達(dá)17套皮膚樣式隨意更換,所有樣式全部統(tǒng)一,包括菜單等。
- 視頻控件懸浮條可以自行增加多個(gè)按鈕,監(jiān)控界面底部小工具欄也可自行增加按鈕。
- 雙擊攝像機(jī)節(jié)點(diǎn)自動播放視頻,雙擊節(jié)點(diǎn)自動依次添加視頻,會自動跳到下一個(gè),雙擊父節(jié)點(diǎn)自動添加該節(jié)點(diǎn)下的所有視頻??蛇x主碼流、子碼流。
- 錄像機(jī)管理、攝像機(jī)管理,可添加刪除修改導(dǎo)入導(dǎo)出打印信息,立即應(yīng)用新的設(shè)備信息生成樹狀列表,不需重啟。
- 可選多種內(nèi)核自由切換,ffmpeg、vlc、mpv等,均可在pro中設(shè)置。推薦用ffmpeg,跨平臺最多,默認(rèn)提供好了linux和mac平臺上編譯好的庫。
- 支持硬解碼,可設(shè)置硬解碼類型(qsv、dxva2、d3d11va等)。
- 默認(rèn)采用opengl繪制視頻,超低的CPU資源占用,支持yuyv和nv12兩種格式繪制,很牛逼。
- 高度可定制化,用戶可以很方便的在此基礎(chǔ)上衍生自己的功能,比如增加自定義模塊,增加運(yùn)行模式、機(jī)器人監(jiān)控、無人機(jī)監(jiān)控、挖掘機(jī)監(jiān)控等。
- 支持xp、win7、win10、linux、mac、各種國產(chǎn)系統(tǒng)(UOS、中標(biāo)麒麟、銀河麒麟等)、嵌入式linux等系統(tǒng)。
- 注釋完整,項(xiàng)目結(jié)構(gòu)清晰,超級詳細(xì)完整的使用開發(fā)手冊,精確到每個(gè)代碼文件的功能說明,不斷持續(xù)迭代版本。
04 自定義控件大全
- 超過202個(gè)精美控件并持續(xù)不斷迭代更新升級,種類超多,控件類型極其豐富。
- 涵蓋了各種儀表盤、進(jìn)度條、進(jìn)度球、指南針、曲線圖、標(biāo)尺、溫度計(jì)、導(dǎo)航條、導(dǎo)航欄,flatui、高亮按鈕、滑動選擇器、農(nóng)歷、廣告輪播、餅狀圖、環(huán)形圖、時(shí)間軸、拓展控件、增強(qiáng)控件等。
- 每個(gè)類都是獨(dú)立的一個(gè).h頭文件和.cpp實(shí)現(xiàn)文件組成,零耦合,不依賴其他文件,方便單個(gè)控件獨(dú)立出來以源碼形式集成到項(xiàng)目中,方便直觀。
- 控件數(shù)量遠(yuǎn)超其他第三方控件庫比如qwt集成的控件數(shù)量,使用方式也比其簡單友好零耦合。
- 支持任意Qt版本,親測Qt4/5/6的所有版本,全部純Qt編寫,QWidget+QPainter繪制。
- 支持任意編譯器,包括但不限于mingw、msvc、gcc、clang等編譯器。
- 支持任意操作系統(tǒng),包括但不限于windows、linux、mac、android、uos、銀河麒麟、各種國產(chǎn)linux、嵌入式linux、樹莓派、香橙派、全志H3等。
- 支持編譯生成設(shè)計(jì)師插件,可直接集成到QtCreator的控件欄中,和自帶的控件一樣使用,大部分效果只要設(shè)置幾個(gè)屬性即可,極為方便。
- 支持編譯生成獨(dú)立的非插件形式的動態(tài)庫文件,體積小,比如嵌入式linux不支持designer只需要動態(tài)庫的形式。
- 每個(gè)控件都有一個(gè)單獨(dú)的完整的使用demo,方便參考學(xué)習(xí)單個(gè)控件使用,非常適合初學(xué)者。
- 提供一個(gè)所有控件使用的集成的example,方便快速查看所有控件的效果。
- 支持直接源碼集成到example的方式,方便編譯到安卓,for web套件等。
- 支持編譯成wasm文件,直接網(wǎng)頁運(yùn)行,可以在谷歌、火狐、edge等瀏覽器運(yùn)行,原生性能。
- 每個(gè)控件的源代碼都有詳細(xì)中文注釋,都按照統(tǒng)一設(shè)計(jì)規(guī)范編寫,方便學(xué)習(xí)自定義控件的編寫。
- 每個(gè)控件都內(nèi)置默認(rèn)配色,demo對應(yīng)的配色都非常精美。
- 部分控件提供多種樣式風(fēng)格選擇,多種指示器樣式選擇。
- 所有控件自適應(yīng)布局和窗體拉伸變化,自動縮放。
- 配套額外的自定義控件屬性設(shè)計(jì)器,類似組態(tài)設(shè)計(jì)器,純中文屬性名稱,支持拖曳設(shè)計(jì),所見即所得,支持導(dǎo)入導(dǎo)出xml格式。
- 集成fontawesome圖形字體+阿里巴巴iconfont收藏的幾百個(gè)圖形字體,享受圖形字體帶來的樂趣。
- 所有控件最后生成一個(gè)dll動態(tài)庫文件,可以直接集成到qtcreator中拖曳設(shè)計(jì)使用。
- 控件源碼全部分門別類存放,pri模塊形式集成,提供控件對照表快速查找對應(yīng)控件和說明。
05 自定義曲線圖柱狀圖
- 可設(shè)置X軸Y軸范圍值。
- 可設(shè)置背景顏色、文本顏色、網(wǎng)格顏色。
- 可設(shè)置三條曲線顏色、顏色集合。
- 可設(shè)置是否顯示十字定位線,支持分別開啟橫向或者縱向定位線。
- 可設(shè)置十字定位線的寬度、顏色。
- 可設(shè)置是否顯示數(shù)據(jù)點(diǎn)、數(shù)據(jù)點(diǎn)的大小。
- 可設(shè)置是否填充背景顏色形成面積圖。
- 可設(shè)置各種交互模式,比如拖動、滾輪縮放等。
- 可設(shè)置坐標(biāo)軸間距、第二坐標(biāo)系可見。
- 提供接口setDataLine直接設(shè)置曲線,支持多條。
- 提供接口setDataBar直接設(shè)置柱狀圖,支持多條形成堆積圖。
- 提供接口setLabs設(shè)置文本標(biāo)簽替代key,包括X軸和Y軸。
- 提供清空數(shù)據(jù)、重繪圖表、外部獲取QCustomPlot對象等函數(shù)接口,這樣就可以進(jìn)行更加詳細(xì)的參數(shù)設(shè)置。
- 提供函數(shù) start() 和 stop() 來模擬正弦曲線。
- 可設(shè)置柱狀圖顯示值、值的位置(頂部、中間、底部)、精確度、顏色。
- 支持鼠標(biāo)移動到數(shù)據(jù)點(diǎn)高亮顯示數(shù)據(jù)點(diǎn),顯示數(shù)據(jù)提示信息。
- 可設(shè)置提示信息位置:自動處理、頂部、右上角、右側(cè)、右下角、底部、左下角、左側(cè)、左上角等。
- 可設(shè)置是否校驗(yàn)數(shù)據(jù)產(chǎn)生不同的背景顏色,柱狀圖的每根柱子都可以根據(jù)數(shù)據(jù)生成不同背景顏色,比如預(yù)警黃色、報(bào)警紅色。
- 可設(shè)置是否顯示圖例、圖例位置、圖例行數(shù)、圖例單行顯示。
- 支持多條曲線、柱狀圖、柱狀分組圖、橫向柱狀圖、橫向分組圖、柱狀堆積圖等。
- 內(nèi)置 N>15 套精美顏色,自動取顏色集合的顏色,省去配色的煩惱。
- 每條柱狀圖都可以設(shè)置不同的顏,分組柱狀圖可以設(shè)置顏色交替。
- Y軸數(shù)值支持百分比顯示,可拓展改成成其他格式。
- 內(nèi)置平滑曲線算法,支持平滑曲線繪制,傳入點(diǎn)集合即可。
- 同時(shí)支持 QCustomPlot 1.3、2.0、2.1等后續(xù)所有版本。
- 提供多坐標(biāo)軸示例,一條曲線對應(yīng)自己獨(dú)立的坐標(biāo)軸。
- 提供多曲線圖示例,一個(gè)曲線控件中繪制多條獨(dú)立的曲線,曲線有自己的獨(dú)立的坐標(biāo)軸,非常適用于一個(gè)設(shè)備需要分開展示多條曲線的場景,而不是共用一套坐標(biāo)系。
- 支持Qt4-Qt6任意Qt版本,支持任意編譯器、任意操作系統(tǒng)。
06 視頻監(jiān)控Onvif綜合示例
- 廣播搜索設(shè)備,支持IPC和NVR,依次返回。
- 可選擇不同的網(wǎng)卡IP進(jìn)行對應(yīng)網(wǎng)段設(shè)備的搜索。
- 依次獲取Onvif地址、Media地址、Profile文件、Rtsp地址。
- 可對指定的Profile獲取視頻流Rtsp地址,比如主碼流地址、子碼流地址。
- 可對每個(gè)設(shè)備設(shè)置Onvif用戶信息,用于認(rèn)證獲取詳細(xì)信息。
- 可實(shí)時(shí)預(yù)覽攝像機(jī)圖像。
- 支持云臺控制,可上下左右調(diào)節(jié)云臺,支持絕對移動、相對移動、連續(xù)移動三種方式,可對圖像拉近拉遠(yuǎn)。
- 支持獲取預(yù)置位集合、調(diào)用預(yù)置位、添加預(yù)置位、刪除預(yù)置位等。
- 支持圖片參數(shù)設(shè)置,包括亮度、對比度、飽和度、銳度等。
- 支持Qt4和Qt6任意Qt版本以及后續(xù)Qt版本,親測Qt4.7到Qt6.5。
- 支持任意編譯器,親測mingw、msvc、gcc、clang。
- 支持任意操作系統(tǒng),親測xp、win7、win10、android、linux、嵌入式linux、樹莓派全志H3等。
- 支持任意Onvif攝像機(jī)和NVR,親測海康、大華、宇視、天地偉業(yè)、華為、海思芯片內(nèi)核等,可定制開發(fā)。
- 支持對指定IP地址及onvif地址進(jìn)行單播搜索,比如跨網(wǎng)段情況下非常有用。
- 支持指定過濾條件過濾搜索設(shè)備,比如只搜索某個(gè)網(wǎng)段的設(shè)備或者針對某個(gè)地址的設(shè)備。
- 支持搜索間隔和搜索策略設(shè)置,保證所有設(shè)備搜索回來,在大量設(shè)備現(xiàn)場很有用(親測上千個(gè)攝像機(jī)現(xiàn)場,搜索回來的設(shè)備數(shù)量比攝像機(jī)廠家自帶搜索工具還要準(zhǔn)確)。
- 可對設(shè)備進(jìn)行重啟、網(wǎng)絡(luò)參數(shù)獲取等。
- 支持各種事件訂閱(入侵報(bào)警、越界報(bào)警、遮擋報(bào)警等)、Onvif抓圖等操作。
- 支持NTP校時(shí)和時(shí)間同步設(shè)置。
- 支持OSD相關(guān)操作,可以增刪改查OSD信息。
- 內(nèi)置了線程實(shí)時(shí)執(zhí)行Onvif指令隊(duì)列,排隊(duì)最大速度的執(zhí)行對應(yīng)的指令,執(zhí)行結(jié)果信號發(fā)出。
- 采用的最底層的TCP+UDP通信機(jī)制,原創(chuàng)最底層協(xié)議解析,純QtWidget編寫。
- 超級小巧輕量,總共約3000行代碼,不依賴任何第三方的庫和組件,跨平臺。
- 封裝好了通用的數(shù)據(jù)發(fā)送和接收解析的函數(shù),可以非常方便的自行拓展其他Onvif處理。
- 工具上提供了收發(fā)數(shù)據(jù)文本框,顯示收發(fā)的數(shù)據(jù),方便查看和分析。
- 支持所有Onvif設(shè)備,代碼工整,接口友好,直接引入pri即可使用。
07 視頻綜合應(yīng)用示例
7.1 基礎(chǔ)功能
- 支持各種音頻視頻文件格式,比如mp3、wav、mp4、asf、rm、rmvb、mkv等。
- 支持本地?cái)z像頭設(shè)備和本地桌面采集,支持多設(shè)備和多屏幕。
- 支持各種視頻流格式,比如rtp、rtsp、rtmp、http、udp等。
- 本地音視頻文件和網(wǎng)絡(luò)音視頻文件,自動識別文件長度、播放進(jìn)度、音量大小、靜音狀態(tài)等。
- 文件可以指定播放位置、調(diào)節(jié)音量大小、設(shè)置靜音狀態(tài)等。
- 支持倍速播放文件,可選0.5倍、1.0倍、2.5倍、5.0倍等速度,相當(dāng)于慢放和快放。
- 支持開始播放、停止播放、暫停播放、繼續(xù)播放。
- 支持抓拍截圖,可指定文件路徑,可選抓拍完成是否自動顯示預(yù)覽。
- 支持錄像存儲,手動開始錄像、停止錄像,部分內(nèi)核支持暫停錄像后繼續(xù)錄像,跳過不需要錄像的部分。
- 支持無感知切換循環(huán)播放、自動重連等機(jī)制。
- 提供播放成功、播放完成、收到解碼圖片、收到抓拍圖片、視頻尺寸變化、錄像狀態(tài)變化等信號。
- 多線程處理,一個(gè)解碼一個(gè)線程,不卡主界面。
7.2. 特色功能
- 同時(shí)支持多種解碼內(nèi)核,包括qmedia內(nèi)核(Qt4/Qt5/Qt6)、ffmpeg內(nèi)核(ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5/ffmpeg6)、vlc內(nèi)核(vlc2/vlc3)、mpv內(nèi)核(mpv1/mp2)、mdk內(nèi)核、??祍dk、easyplayer內(nèi)核等。
- 非常完善的多重基類設(shè)計(jì),新增一種解碼內(nèi)核只需要實(shí)現(xiàn)極少的代碼量,就可以應(yīng)用整套機(jī)制,極易拓展。
- 同時(shí)支持多種畫面顯示策略,自動調(diào)整(原始分辨率小于顯示控件尺寸則按照原始分辨率大小顯示,否則等比縮放)、等比縮放(永遠(yuǎn)等比縮放)、拉伸填充(永遠(yuǎn)拉伸填充)。所有內(nèi)核和所有視頻顯示模式下都支持三種畫面顯示策略。
- 同時(shí)支持多種視頻顯示模式,句柄模式(傳入控件句柄交給對方繪制控制)、繪制模式(回調(diào)拿到數(shù)據(jù)后轉(zhuǎn)成QImage用QPainter繪制)、GPU模式(回調(diào)拿到數(shù)據(jù)后轉(zhuǎn)成yuv用QOpenglWidget繪制)。
- 支持多種硬件加速類型,ffmpeg可選dxva2、d3d11va等,vlc可選any、dxva2、d3d11va,mpv可選auto、dxva2、d3d11va,mdk可選dxva2、d3d11va、cuda、mft等。不同的系統(tǒng)環(huán)境有不同的類型選擇,比如linux系統(tǒng)有vaapi、vdpau,macos系統(tǒng)有videotoolbox。
- 解碼線程和顯示窗體分離,可指定任意解碼內(nèi)核掛載到任意顯示窗體,動態(tài)切換。
- 支持共享解碼線程,默認(rèn)開啟并且自動處理,當(dāng)識別到相同的視頻地址,共享一個(gè)解碼線程,在網(wǎng)絡(luò)視頻環(huán)境中可以大大節(jié)約網(wǎng)絡(luò)流量以及對方設(shè)備的推流壓力。國內(nèi)頂尖視頻廠商均采用此策略。這樣只要拉一路視頻流就可以共享到幾十個(gè)幾百個(gè)通道展示。
- 自動識別視頻旋轉(zhuǎn)角度并繪制,比如手機(jī)上拍攝的視頻一般是旋轉(zhuǎn)了90度的,播放的時(shí)候要自動旋轉(zhuǎn)處理,不然默認(rèn)是倒著的。
- 自動識別視頻流播放過程中分辨率的變化,在視頻控件上自動調(diào)整尺寸。比如攝像機(jī)可以在使用過程中動態(tài)配置分辨率,當(dāng)分辨率改動后對應(yīng)視頻控件也要做出同步反應(yīng)。
- 音視頻文件無感知自動切換循環(huán)播放,不會出現(xiàn)切換期間黑屏等肉眼可見的切換痕跡。
- 視頻控件同時(shí)支持任意解碼內(nèi)核、任意畫面顯示策略、任意視頻顯示模式。
- 視頻控件懸浮條同時(shí)支持句柄、繪制、GPU三種模式,非絕對坐標(biāo)移來移去。
- 本地?cái)z像頭設(shè)備支持指定設(shè)備名稱、分辨率、幀率進(jìn)行播放。
- 本地桌面采集支持設(shè)定采集區(qū)域、偏移值、指定桌面索引、幀率、多個(gè)桌面同時(shí)采集等。
- 錄像文件同時(shí)支持打開的視頻文件、本地?cái)z像頭、本地桌面、網(wǎng)絡(luò)視頻流等。
- 瞬間響應(yīng)打開和關(guān)閉,無論是打開不存在的視頻或者網(wǎng)絡(luò)流,探測設(shè)備是否存在,讀取中的超時(shí)等待,收到關(guān)閉指令立即中斷之前的操作并響應(yīng)。
- 支持打開各種圖片文件,支持本地音視頻文件拖曳播放。
- 視頻流通信方式可選tcp/udp,有些設(shè)備可能只提供了某一種協(xié)議通信比如tcp,需要指定該種協(xié)議方式打開。
- 可設(shè)置連接超時(shí)時(shí)間(視頻流探測用的超時(shí)時(shí)間)、讀取超時(shí)時(shí)間(采集過程中的超時(shí)時(shí)間)。
- 支持逐幀播放,提供上一幀/下一幀函數(shù)接口,可以逐幀查閱采集到的圖像。
- 音頻文件自動提取專輯信息比如標(biāo)題、藝術(shù)家、專輯、專輯封面,自動顯示專輯封面。
- 視頻響應(yīng)極低延遲0.2s左右,極速響應(yīng)打開視頻流0.5s左右,專門做了優(yōu)化處理。
- 支持H264/H265編碼(現(xiàn)在越來越多的監(jiān)控?cái)z像頭是H265視頻流格式)生成視頻文件,內(nèi)部自動識別切換編碼格式。
- 支持用戶信息中包含特殊字符(比如用戶信息中包含+#@等字符)的視頻流播放,內(nèi)置解析轉(zhuǎn)義處理。
- 支持濾鏡,各種水印及圖形效果,支持多個(gè)水印和圖像,可以將OSD標(biāo)簽信息和各種圖形信息寫入到MP4文件。
- 支持視頻流中的各種音頻格式,AAC、PCM、G.726、G.711A、G.711Mu、G.711ulaw、G.711alaw、MP2L2等都支持,推薦選擇AAC兼容性跨平臺性最好。
- 內(nèi)核ffmpeg采用純qt+ffmpeg解碼,非sdl等第三方繪制播放依賴,gpu繪制采用qopenglwidget,音頻播放采用qaudiooutput。
- 內(nèi)核ffmpeg和內(nèi)核mdk支持安卓,其中mdk支持安卓硬解碼,性能非常兇殘。
- 可以切換音視頻軌道,也就是節(jié)目通道,可能ts文件帶了多個(gè)音視頻節(jié)目流,可以分別設(shè)置要播放哪一個(gè),可以播放前設(shè)置好和播放過程中動態(tài)設(shè)置。
- 可以設(shè)置視頻旋轉(zhuǎn)角度,可以播放前設(shè)置好和播放過程中動態(tài)設(shè)置。
- 視頻控件懸浮條自帶開始和停止錄像切換、聲音靜音切換、抓拍截圖、關(guān)閉視頻等功能。
- 音頻組件支持聲音波形值數(shù)據(jù)解析,可以根據(jù)該值繪制波形曲線和柱狀聲音條,默認(rèn)提供了聲音振幅信號。
- 標(biāo)簽和圖形信息支持三種繪制方式,繪制到遮罩層、繪制到圖片、源頭繪制(對應(yīng)信息可以存儲到文件)。
- 通過傳入一個(gè)url地址,該地址可以帶上通信協(xié)議、分辨率、幀率等信息,無需其他設(shè)置。
- 各組件中極其詳細(xì)的打印信息提示,尤其是報(bào)錯(cuò)信息提示,封裝的統(tǒng)一打印格式。針對現(xiàn)場復(fù)雜的設(shè)備環(huán)境測試極其方便有用,相當(dāng)于精確定位到具體哪個(gè)通道哪個(gè)步驟出錯(cuò)。
- 代碼框架和結(jié)構(gòu)優(yōu)化到最優(yōu),性能強(qiáng)悍,持續(xù)迭代更新升級。
- 源碼支持Qt4、Qt5、Qt6,兼容所有版本。
7.3. 視頻控件
- 可動態(tài)添加任意多個(gè)osd標(biāo)簽信息,標(biāo)簽信息包括名字、是否可見、字號大小、文本文字、文本顏色、背景顏色、標(biāo)簽圖片、標(biāo)簽坐標(biāo)、標(biāo)簽格式(文本、日期、時(shí)間、日期時(shí)間、圖片)、標(biāo)簽位置(左上角、左下角、右上角、右下角、居中、自定義坐標(biāo))。
- 可動態(tài)添加任意多個(gè)圖形信息,這個(gè)非常有用,比如人工智能算法解析后的圖形區(qū)域信息直接發(fā)給視頻控件即可。圖形信息支持任意形狀,直接繪制在原始圖片上,采用絕對坐標(biāo)。
- 圖形信息包括名字、邊框大小、邊框顏色、背景顏色、矩形區(qū)域、路徑集合、點(diǎn)坐標(biāo)集合等。
- 每個(gè)圖形信息都可指定三種區(qū)域中的一種或者多種,指定了的都會繪制。
- 內(nèi)置懸浮條控件,懸浮條位置支持頂部、底部、左側(cè)、右側(cè)。
- 懸浮條控件參數(shù)包括邊距、間距、背景透明度、背景顏色、文本顏色、按下顏色、位置、按鈕圖標(biāo)代碼集合、按鈕名稱標(biāo)識集合、按鈕提示信息集合。
- 懸浮條控件一排工具按鈕可自定義,通過結(jié)構(gòu)體參數(shù)設(shè)置,圖標(biāo)可選圖形字體還是自定義圖片。
- 懸浮條按鈕內(nèi)部實(shí)現(xiàn)了錄像切換、抓拍截圖、靜音切換、關(guān)閉視頻等功能,也可以自行在源碼中增加自己對應(yīng)的功能。
- 懸浮條按鈕對應(yīng)實(shí)現(xiàn)了功能的按鈕,有對應(yīng)圖標(biāo)切換處理,比如錄像按鈕按下后會切換到正在錄像中的圖標(biāo),聲音按鈕切換后變成靜音圖標(biāo),再次切換還原。
- 懸浮條按鈕單擊后都用名稱唯一標(biāo)識作為信號發(fā)出,可以自行關(guān)聯(lián)響應(yīng)處理。
- 懸浮條空白區(qū)域可以顯示提示信息,默認(rèn)顯示當(dāng)前視頻分辨率大小,可以增加幀率、碼流大小等信息。
- 視頻控件參數(shù)包括邊框大小、邊框顏色、焦點(diǎn)顏色、背景顏色(默認(rèn)透明)、文字顏色(默認(rèn)全局文字顏色)、填充顏色(視頻外的空白處填充黑色)、背景文字、背景圖片(如果設(shè)置了圖片優(yōu)先取圖片)、是否拷貝圖片、縮放顯示模式(自動調(diào)整、等比縮放、拉伸填充)、視頻顯示模式(句柄、繪制、GPU)、啟用懸浮條、懸浮條尺寸(橫向?yàn)楦叨?、縱向?yàn)閷挾龋?、懸浮條位置(頂部、底部、左側(cè)、右側(cè))。
08 輸入法
- 純QWidget編寫,支持任何目標(biāo)平臺(親測windows、linux、嵌入式linux等),支持任意Qt版本(親測Qt4.6.0到Qt6.6),支持任意編譯器(親測mingw、gcc、msvc等),支持任意控件輸入包括網(wǎng)頁中的輸入控件。
- 調(diào)用極為方便,pri文件調(diào)用形式,只要改成文件包含即可,例如pro文件中寫 include($$PWD/input2019/input2019.pri)。
- 界面清晰簡潔,UI美觀友好,高仿IOS輸入法,非常適合觸摸設(shè)備。
- 頂部滑動選詞+彈出漢字面板選詞,支持滑動。
- 具有記憶功能,之前選中過的詞語首先顯示,支持單個(gè)拼音多個(gè)漢字,自動調(diào)整優(yōu)先級。
- 具有造詞功能,可以直接打開文件文件寫入自定義詞組,最高級別顯示。
- 支持?jǐn)?shù)字小鍵盤,可選是彈出全鍵盤的數(shù)字面板還是小鍵盤。
- 多版面字符頁面,可以自行拓展各種字符展示,可用于多語言輸入。
- 支持Qt程序嵌入的瀏覽器中的網(wǎng)頁中的文本框等控件的輸入。
- 界面大小隨意設(shè)置,采用布局自使用任何分辨率。
- 屬性控制數(shù)字輸入,例如需要文本框默認(rèn)彈出的是數(shù)字則設(shè)置代碼 ui->txt->setProperty(“flag”, “number”);
- 自由控制需要顯示輸入法和不需要顯示輸入法,當(dāng)某些控件不需要彈出輸入法,只需要對應(yīng)不需要彈出輸入法的控件設(shè)置屬性noinput為真即可。例如ui->txt->setProperty(“noinput”, true);
- 界面自適應(yīng)屏幕大小,輸入法彈出位置為控件底部時(shí),當(dāng)超過桌面右邊或者底部時(shí),自動調(diào)整位置。
- 實(shí)現(xiàn)了長按超過500毫秒重復(fù)執(zhí)行按下的鍵的功能。例如長按退格鍵,不斷刪除。
- 英文、中文、數(shù)字字母、大小寫、特殊字符自由切換。
- 支持單拼、全拼、模糊拼音輸入,智能分頁算法,可任意翻頁查看漢字詞組。
- 默認(rèn)自帶5種皮膚顏色,可隨意切換,用戶也可用QSS自定義皮膚。
- 谷歌內(nèi)核的輸入法引擎,品質(zhì)保證,字庫文件1MB,不依賴數(shù)據(jù)庫,資源占用低效率極高。支持模糊拼音,比如nh=你好。
- 可選windows專有版本,支持外部程序輸入,比如輸入到記事本、QQ聊天窗口等。
- 整個(gè)輸入法代碼行數(shù)1000行左右,非常小,不會對程序增加大小造成負(fù)擔(dān)。
- 代碼結(jié)構(gòu)極為清晰,注釋詳細(xì),非常容易閱讀和理解,同時(shí)也可以自行修改拓展自定義的需求。
09 數(shù)據(jù)庫綜合示例
- 同時(shí)支持多種數(shù)據(jù)庫比如odbc、sqlite、mysql、postgresql、sqlserver、oracle、人大金倉等。
- 一個(gè)數(shù)據(jù)庫類即可管理本地?cái)?shù)據(jù)庫通信,也支持遠(yuǎn)程數(shù)據(jù)庫通信等。
- 數(shù)據(jù)庫線程支持執(zhí)行各種sql語句,包括單條和批量。
- 組件中的所有類打印信息、錯(cuò)誤信息、執(zhí)行結(jié)果都信號發(fā)出去。
- 集成數(shù)據(jù)庫通用翻頁類(負(fù)責(zé)具體處理邏輯),搭配分頁導(dǎo)航控件(負(fù)責(zé)外觀),形成超級牛逼的翻頁控件。
- 集成數(shù)據(jù)庫自動清理類,設(shè)定最大記錄數(shù)后臺自動清理早期數(shù)據(jù)。
- 集成自定義委托類,支持復(fù)選框、文本框、下拉框、日期框、微調(diào)框、進(jìn)度條等。
- 同時(shí)支持Qt4-Qt6,親測Qt4.6到Qt6.2任意版本,任意系統(tǒng)和編譯器。
- 本組件無故障 360天7乘24小時(shí) 運(yùn)行在至少上萬個(gè)現(xiàn)場,商業(yè)級別品質(zhì)保證。
- 每個(gè)類都對應(yīng)完整詳細(xì)的使用示例,注釋詳細(xì),非常適合閱讀學(xué)習(xí)。
- 可以作為獨(dú)立的程序運(yùn)行,比如自動清理早期數(shù)據(jù),同步數(shù)據(jù)到云端。
- 全部線程處理,不卡界面,自動重連數(shù)據(jù)庫。
- 普通測試情況,sqlite數(shù)據(jù)庫,數(shù)據(jù)庫發(fā)生器每秒鐘插入1000條記錄約0.003秒鐘,同時(shí)自動清理數(shù)據(jù)類每秒鐘刪除1000條記錄約0.13秒,不同線程互不干擾。
10 皮膚生成器和精美UI界面
- 自帶20套精美皮膚樣式,其中包括黑色、灰色、扁平等。
- 皮膚生成器只需要簡單幾步就可以生成一套自定義的皮膚。
- 自帶了26種uidemo,非常漂亮美觀,涵蓋了主界面布局、菜單切換等各種效果,總有一款適合你。
- 所有代碼和demo注釋都非常詳細(xì)整齊整潔,非常適合初學(xué)者學(xué)習(xí)。
- uidemo由簡入難,可以一步步學(xué)習(xí)下去,從入門到熟悉。
- uidemo從常規(guī)的客戶端到app端到觸摸端等都有,既有鼠標(biāo)操作的也有觸摸操作的。
- 皮膚中的qss樣式表內(nèi)容,覆蓋了幾乎所有的控件,非常適合學(xué)習(xí)每個(gè)控件的qss樣式如何設(shè)置,而且分門別類非常清晰。
- 自帶的quihelper類,集大成之所長,超級牛逼,內(nèi)置了無邊框的消息框、錯(cuò)誤框、詢問框、右下角信息框、輸入框、日期范圍選擇框等,支持倒計(jì)時(shí)關(guān)閉,集成圖形字體設(shè)置方法及根據(jù)指定文字獲取圖片,集成CRC校驗(yàn)、獲取應(yīng)用程序文件名、文件路徑、設(shè)置窗體居中顯示、設(shè)置翻譯文件、設(shè)置編碼、設(shè)置延時(shí)、設(shè)置系統(tǒng)時(shí)間等各種靜態(tài)方法,保你滿意。
- 支持任意Qt版本+任意編譯器+任意系統(tǒng),可運(yùn)行在win、linux、mac OS、嵌入式linux等各種系統(tǒng)上。
11 地圖綜合應(yīng)用示例
11.1 省市區(qū)域地圖
- 同時(shí)支持閃爍點(diǎn)圖、遷徙圖、區(qū)域地圖、世界地圖、儀表盤等。
- 可以設(shè)置標(biāo)題、提示信息、背景顏色、文字顏色、線條顏色、區(qū)域顏色等各種顏色。
- 可設(shè)置城市的名稱、值、經(jīng)緯度 集合。
- 可設(shè)置地圖的放大倍數(shù)、是否允許鼠標(biāo)滾輪縮放。
- 內(nèi)置世界地圖、全國地圖、省份地圖、地區(qū)地圖,可以精確到縣,所有地圖全部離線使用。
- 內(nèi)置了各省市json數(shù)據(jù)文件轉(zhuǎn)js文件功能,如有數(shù)據(jù)更新自行轉(zhuǎn)換即可,支持單個(gè)文件轉(zhuǎn)換和一鍵轉(zhuǎn)換所有文件。
- 內(nèi)置了從json文件或者js文件獲取該區(qū)域的所有名稱和經(jīng)緯度信息集合的功能,可以通過該方法獲取到信息用來顯示。
- 依賴瀏覽器組件顯示地圖,提供的demo支持webkit/webengine/miniblink/ie 多種方式加載網(wǎng)頁。
- 采用miniblink瀏覽器內(nèi)核打通了Qt5.6及后續(xù)版本+mingw編譯器缺少瀏覽器模塊的遺憾,使得整個(gè)項(xiàng)目支持所有Qt版本,親測4.7到5.15等任意版本。
- 閃爍點(diǎn)遷徙圖等設(shè)置的點(diǎn)支持單獨(dú)設(shè)置顏色。
- 提供接口直接獲取點(diǎn)擊的點(diǎn)相關(guān)信息,方便程序聯(lián)動處理。
- 拓展性極強(qiáng),可以依葫蘆畫瓢自行增加各種精美的echarts組件,做出牛逼的效果。
- 內(nèi)置的儀表盤組件提供交互功能,demo演示中包含了對應(yīng)的代碼。
- 函數(shù)接口友好和統(tǒng)一,使用簡單方便,就一個(gè)類。
- 支持任意Qt版本、任意系統(tǒng)、任意編譯器。
11.2 百度地圖
- 同時(shí)支持在線地圖和離線地圖兩種模式。
- 同時(shí)支持webkit內(nèi)核、webengine內(nèi)核、miniblink內(nèi)核、IE內(nèi)核。
- 支持設(shè)置多個(gè)標(biāo)注點(diǎn),信息包括名稱、地址、經(jīng)緯度。
- 可設(shè)置地圖是否可單擊、拖動、鼠標(biāo)滾輪縮放。
- 可設(shè)置協(xié)議版本、秘鑰、主題樣式、中心坐標(biāo)、中心城市、地理編碼位置等。
- 可設(shè)置地圖縮放比例和級別,縮略圖、比例尺、路況信息等控件的可見。
- 支持地圖交互,比如鼠標(biāo)按下獲取對應(yīng)位置的經(jīng)緯度。
- 支持查詢路線,可設(shè)置起點(diǎn)位置、終點(diǎn)位置、路線模式、路線方式、路線方案(最少時(shí)間、最少換乘、最少步行、不乘地鐵、最短距離、避開高速)。
- 可顯示點(diǎn)線面工具,可直接在地圖上劃線、點(diǎn)、矩形、圓形等。
- 可設(shè)置行政區(qū)劃,指定某個(gè)城市區(qū)域繪制圖層,在線地圖自動輸出行政區(qū)劃邊界點(diǎn)集合到j(luò)s文件給離線地圖使用。
- 可靜態(tài)或者動態(tài)添加多個(gè)覆蓋物。支持點(diǎn)、折線、多邊形、矩形、圓形、弧線、點(diǎn)聚合等。
- 提供函數(shù)接口處理經(jīng)緯度解析成地址和地址解析成經(jīng)緯度坐標(biāo)。
- 提供的demo直接可以單獨(dú)選點(diǎn)執(zhí)行對應(yīng)的處理比如路線查詢。
- 可以拿到路線查詢到的點(diǎn)坐標(biāo)信息集合,比如用于機(jī)器人坐標(biāo)導(dǎo)航等。
- 封裝了豐富的函數(shù)比如刪除指定點(diǎn)和所有點(diǎn),刪除指定覆蓋物和所有覆蓋物等。
- 標(biāo)注點(diǎn)彈框信息可以自定義內(nèi)容,標(biāo)準(zhǔn)html格式。
- 標(biāo)注點(diǎn)單擊事件可選 0-不處理 1-自己彈框 2-發(fā)送信號。
- 標(biāo)注點(diǎn)可設(shè)置動畫效果 0-不處理 1-跳動 2-墜落
- 標(biāo)注點(diǎn)可設(shè)置本地圖片文件等。
- 函數(shù)接口友好和統(tǒng)一,使用簡單方便,就一個(gè)類。
- 支持js動態(tài)交互添加點(diǎn)、刪除點(diǎn)、清空點(diǎn)、重置點(diǎn),不需要刷新頁面。
- 支持任意Qt版本、任意系統(tǒng)、任意編譯器。
11.3 離線地圖下載
- 多線程同步下載多級別瓦片地圖,不卡界面。
- 內(nèi)置多個(gè)離線地圖下載請求地址,自動隨機(jī)選擇一個(gè)發(fā)送請求。
- 下載地圖類型同時(shí)支持街道圖和衛(wèi)星圖。
- 自動計(jì)算可視區(qū)域或者行政區(qū)域的下載瓦片數(shù)量。
- 下載的級別可以自定義范圍和選擇。
- 每個(gè)瓦片下載完成都發(fā)送信號通知,參數(shù)包括下載用時(shí)。
- 可設(shè)置下載最大超時(shí)時(shí)間,超過了則丟棄跳到下一個(gè)下載任務(wù)。
- 實(shí)時(shí)顯示下載進(jìn)度,以及當(dāng)前級別已經(jīng)下載的瓦片數(shù)和總瓦片數(shù)。
- 下載過程中可以停止下載,下載完成自動統(tǒng)計(jì)總用時(shí)。
- 內(nèi)置經(jīng)緯度和屏幕坐標(biāo)互相轉(zhuǎn)換函數(shù)。
- 目前支持百度地圖,其他地圖比如谷歌地圖、騰訊地圖、高德地圖可以定制。
- 函數(shù)接口友好和統(tǒng)一,使用簡單方便,就一個(gè)類。
- 支持任意Qt版本、任意系統(tǒng)、任意編譯器。
12 屬性設(shè)計(jì)器組態(tài)軟件
- 自動加載插件文件中的所有控件生成列表,默認(rèn)自帶的控件超過120個(gè)。
- 拖曳到畫布自動生成對應(yīng)的控件,所見即所得。
- 右側(cè)中文屬性欄,改變對應(yīng)的屬性立即應(yīng)用到對應(yīng)選中控件,直觀簡潔,非常適合小白使用。
- 獨(dú)創(chuàng)屬性欄文字翻譯映射機(jī)制,效率極高,可以非常方便拓展其他語言的屬性欄。
- 所有控件的屬性自動提取并顯示在右側(cè)屬性欄,包括枚舉值下拉框等。
- 支持手動選擇插件文件,外部導(dǎo)入插件文件。
- 可以將當(dāng)前畫布的所有控件配置信息導(dǎo)出到xml文件。
- 可以手動選擇xml文件打開控件布局,自動根據(jù)xml文件加載控件。
- 可拉動滑動條、勾選模擬數(shù)據(jù)復(fù)選框、文本框輸入,三種方式來生成數(shù)據(jù)應(yīng)用所有控件。
- 控件支持八個(gè)方位拉動調(diào)整大小,自適應(yīng)任意分辨率,可鍵盤上下左右微調(diào)位置。
- 打通了串口采集、網(wǎng)絡(luò)采集、數(shù)據(jù)庫采集三種方式設(shè)置數(shù)據(jù)。
- 代碼極其精簡,注釋非常詳細(xì),可以作為組態(tài)的雛形,自行拓展更多的功能。
- 純Qt編寫,支持任意Qt版本+任意編譯器+任意系統(tǒng)。
到了這里,關(guān)于Qt/C++項(xiàng)目作品精選(祖?zhèn)?性能兇殘/界面精美)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!