小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

為什么工業(yè)軟件開發(fā)一般用的都是QT?

 imnobody2001 2024-12-18

為什么工業(yè)軟件開發(fā)一般用的都是QT,使用QT開發(fā)有什么好處?

網(wǎng)友1-pansz

說說個(gè)人的理解:

Qt不依賴圖形系統(tǒng)。低端工控機(jī)的硬件配置可能是連一個(gè)圖形系統(tǒng)都跑不起來的,而Qt可以直接寫屏實(shí)現(xiàn)圖形界面。

其它不依賴圖形系統(tǒng)的開發(fā)框架都比Qt弱。比Qt強(qiáng)的開發(fā)框架基本都依賴圖形系統(tǒng) 所以Qt就成為當(dāng)下有現(xiàn)成解決方案中最強(qiáng)的開發(fā)框架了。

至于虛擬機(jī),瀏覽器這些東西。。。你們覺得一個(gè)連圖形系統(tǒng)都配置不起的嵌入式工控機(jī)會搭載瀏覽器跟虛擬機(jī)嗎?java,python,html5等方案直接淘汰。

所以簡單說:Qt對硬件配置要求極低。而C++性能又相對其他語言高,所以成為低配設(shè)備的首選。

補(bǔ)充一些內(nèi)容吧:

就我司的情況而言,能跑安卓的機(jī)子基本都會考慮編個(gè)安卓上去。只有硬件配置低,跑不起來安卓的目標(biāo)機(jī)才會用Qt開發(fā)。而能選型用Qt的目標(biāo)機(jī),基本上屬于用Qt就是極限,根本不可能跑得動(dòng)任何更大軟件框架。

至于跑安卓有多簡單,可能很多人沒概念,大概就是絕大多數(shù)你選型的產(chǎn)商都可以給你提供立等可用的安卓選項(xiàng),不用自己做的那種。

反倒是用Qt,對系統(tǒng)組的技術(shù)要求要高。畢竟系統(tǒng)組還要給你制作一套交叉編譯的工具鏈,而安卓的工具鏈就是產(chǎn)商提供的現(xiàn)成的。對于有能力編譯一整套工具鏈的系統(tǒng)組來說,質(zhì)疑其技術(shù)能力是完全沒有意義的,畢竟無論你是用啥編譯器,人家連gcc,cang編譯器+本身都能重新編譯出來,還能不懂你一個(gè)aot的編譯?事實(shí)上,最終搭好環(huán)境后,搞虛擬機(jī)那些語言開發(fā)的程序員也不需要懂交叉編譯+,而搞Qt的開發(fā)就必須得懂交叉編譯。

提升配置之后,java或者安卓逐漸會變?yōu)槭走x,但在有限配置下Qt依然為大,畢竟Qt強(qiáng)制了C++11的支持。這一點(diǎn)也有不少功勞。

網(wǎng)友2-lincccc

用qt都算與時(shí)俱進(jìn)的,我見過更多是抱著mfc都撒不了手的。

我們做機(jī)器視覺的。打個(gè)比方,1200w的圖像+幾百或者幾十ms的節(jié)拍要求(還有2500w的,線掃那就0都數(shù)不清楚了)。后臺的算法和通信基本離不開c++或者c。界面刷新幀率10fps還是要的,再配上復(fù)雜的圖形繪制,用戶時(shí)不時(shí)的還會瞎操作幾手,基本就得直接上native接口了,我們用下來的感覺,qt都不大頂?shù)米。赡艿脫Qopengl或者dx。web技術(shù)的話mes還能行,檢測終端部署上真是想都不敢想。

網(wǎng)友3-eYKrek

中國工業(yè)技術(shù)軟件化產(chǎn)業(yè)聯(lián)盟在其最新發(fā)布的《工業(yè)軟件白皮書》中,討論了對工業(yè)軟件的分類。根據(jù)白皮書內(nèi)容,工業(yè)軟件的分類包括幾種:工業(yè)軟件、工業(yè)總線、計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)集成制造系統(tǒng)、工業(yè)仿真、可編程邏輯控制器(PLC)、產(chǎn)品生命周期管理(PLM)、產(chǎn)品數(shù)據(jù)管理(PMD)、其他工業(yè)軟件等九類。

我只涉獵過工業(yè)仿真領(lǐng)域,用Qt的原因是,因?yàn)樗荂++語言編寫GUI最好的框架之一。我用的仿真算法幾乎都是用C、C++、CUDA寫的。用Qt開發(fā),調(diào)試的時(shí)候從GUI到底層算法可以無縫連接。因?yàn)橛行┧惴ǖ恼{(diào)試本身就需要有個(gè)GUI界面用作用戶輸入或者結(jié)果輸出,不用Qt的話,大多數(shù)人會用OpenGL、glfw組合去做一個(gè)窗口。還有一些使用C++的GUI庫,比如Dear ImGui,OGRE Tray等,也可用于算法調(diào)試的簡易GUI界面開發(fā)。

橫豎都需要個(gè)GUI去調(diào)算法,為啥不一步到位選個(gè)功能更強(qiáng)大的Qt呢?Qt的學(xué)習(xí)成本并不比glfw、Dear ImGui這些高多少呀。

常用的平臺只有Windows和Linux,Qt在這兩個(gè)操作系統(tǒng)上的跨平臺編譯幾乎不用做啥修改。仿真算法也一樣,大家都用CMake作為編譯工具,跨平臺的GUI界面和仿真算法編譯省時(shí)省心。

另外,說Qt寫的軟件界面丑的,真的誤會Qt了,Qt只是默認(rèn)支持了GNOME、GTK+、Mac OS X、KDE、Windows XP/Vista等。如果你什么都不設(shè)置,Qt會選擇你操作系統(tǒng)默認(rèn)的窗口和控件風(fēng)格。也就是說Qt界面丑,是因?yàn)椴僮飨到y(tǒng)丑……

Qt支持使用QSS去修改窗口和控件風(fēng)格,QSS是類CSS的,可以看做一個(gè)閹割版的CSS。Qt也可以做出來好看的界面,只不過我一般不愿意在上面花時(shí)間。不像游戲公司,工業(yè)軟件的公司一般沒有專門做美工畫圖的,軟件中色彩配置、圖標(biāo)、字體要么默認(rèn),要么網(wǎng)上隨便下一個(gè),所以整體看起來就丑啦。圖標(biāo)我有時(shí)會把WPS或者PowerPoint里圖標(biāo)直接導(dǎo)出為png,您別說還挺好用。順帶提一嘴,WPS也是Qt寫的。

現(xiàn)在Qt已經(jīng)步入Qt 6時(shí)代,但大多數(shù)Qt編寫的軟件還在使用Qt5,你只要在軟件安裝目錄下搜一下Qt5,就知道多少軟件用Qt開發(fā)了。我剛在我自己筆記本上搜了一下。WPS、騰訊會議、騰訊電腦管家、安卓模擬器Memu、Autodesk Desktop、Autodesk 3ds Max、NVIDIA NSight Systems都是Qt5開發(fā)的。

作為界面設(shè)計(jì)對比,我們來看看同為Qt5開發(fā)的NVidia Nsight Systems和騰訊電腦管家。

圖片

圖片

我覺得它們的差別在于騰訊有人畫圖,而NVIDIA這一看就是用的Qt默認(rèn)的風(fēng)格。

Qt還提供了Python接口,可以使用Python開發(fā)GUI。下面這個(gè)帖子里,使用QSS做了界面美化,我感覺挺好看的,不比我筆記本上裝的任何一款軟件差。

網(wǎng)友4-清風(fēng)徐徐

電力控制相關(guān)開發(fā)來答一下。

國內(nèi)最早廠站級監(jiān)控軟件最早一般基于windows ,早期調(diào)度系統(tǒng)用qt 。為啥不用互聯(lián)網(wǎng)架構(gòu)方式?Java 那會沒出來或者剛剛出來,沒法用。另外,電網(wǎng)運(yùn)行核心安全區(qū)不許用http 方式。

在2000年以后,國內(nèi)c++用戶數(shù)有個(gè)明顯的增長,大部分是mfc ,小部分是qt。近十年來出現(xiàn)反轉(zhuǎn)。

國外監(jiān)控軟件一般用windows 居多或者非常多,因?yàn)閛pc 或者com 技術(shù)。

還有,別說工控開發(fā)人員水平差。由于專業(yè)性緣故,一般一半的電氣一半計(jì)算機(jī)。早期開發(fā)人員水平非常之高,近年來人員很多都去互聯(lián)網(wǎng)行業(yè)了,水平良莠不齊。舉個(gè)簡單的例子,我們的通信采集通道采用流水線設(shè)計(jì)模式,后來看到了netty,看了下馬上就明白了。netty 是09年左右出現(xiàn),我們在02年時(shí)候做的。另外,消息總線,實(shí)時(shí)數(shù)據(jù)庫等等都是在同時(shí)間開發(fā)完畢。

網(wǎng)友5-灼灼其華

我在開發(fā)一個(gè)基于windows的工控機(jī)的軟件 本來用C# wpf開發(fā)的 里面有個(gè)視頻播放的要求, wpi的視頻播放器控件使用很簡單,弄好后在我自己電腦上運(yùn)行沒問題 放到工控機(jī)里面就播放不了了估計(jì)這個(gè)視頻播放器沒有自己的解碼器,能不能支持很多格式也不好說。所以放棄wpf改成Qt+FFmpeg。

不要認(rèn)為用C++ Qt就是守舊,最近C++20的協(xié)程也可以使用了。我當(dāng)時(shí)覺得wpf可以使用C#的async和await很方便所以選擇wpf奈何和FFmpeg一起使用太繁瑣 才放棄,研究了一下C++20的協(xié)程 現(xiàn)在我在Qt上也可以使用async和await了,Qt中處理異步一般是使用信號,槽 可嵌套很深的回調(diào)邏輯實(shí)在太繁瑣了 還是async和await更香。

很多人說C#也有很多基于FFmpeg封裝的庫,但是這些庫是受到.netframework版本的限制的。工控機(jī)的.net framework版本太低 我新建wpf項(xiàng)目的時(shí)候可以選擇低版本的.net 但是使用到第三方庫的時(shí)候 不一定都可以選低版本 這該怎么辦呢!工控機(jī)的.net framework高版本又裝不上去。

在這個(gè)問題上C++就沒有這個(gè)問題,使用C++20寫的程序和庫 即使在win xp上也不會有問題。麻煩也是有的Qt和FFmpeg我都是從源碼重新編譯的這需要花一些時(shí)間。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多