日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 一、前言  說(shuō)到Qt,不能不說(shuō)到C++,這門(mén)偉大的語(yǔ)言。因?yàn)槠涿嫦驅(qū)ο蟮木幊趟枷牒投盖偷膶W(xué)習(xí)曲線,一開(kāi)始學(xué)習(xí)起來(lái)很是吃力。Qt從QT4開(kāi)始基本封裝了很多C++的工具庫(kù)和界面

 一、前言  說(shuō)到Qt,不能不說(shuō)到C++,這門(mén)偉大的語(yǔ)言。因?yàn)槠涿嫦驅(qū)ο蟮木幊趟枷牒投盖偷膶W(xué)習(xí)曲線,一開(kāi)始學(xué)習(xí)起來(lái)很是吃力。Qt從QT4開(kāi)始基本封裝了很多C++的工具庫(kù)和界面庫(kù),而且支持跨平臺(tái),這是它最大的優(yōu)勢(shì)。相比于古老的MFC和使用C#的WPF來(lái)說(shuō),我更喜歡Qt來(lái)進(jìn)行C++的界面設(shè)計(jì),這也是我從新開(kāi)始拾起Qt學(xué)習(xí)之路的原因。

說(shuō)完了感受和學(xué)習(xí)的原因,就開(kāi)始介紹Qt5了。我這里只做簡(jiǎn)單的介紹,重要的還是在學(xué)習(xí)過(guò)程中體會(huì)Qt的編程邏輯和設(shè)計(jì)思想。

Qt,坦白來(lái)說(shuō),并不只是一個(gè)界面庫(kù),他是C++編程思想的集大成者。它是得到完善的C++應(yīng)用程序框架。使用Qt,在一定程度上你獲得的是一個(gè)“一站式”、“全方位”的解決方案,STL。string、XML、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)這些零散的功能都包含在Qt中,并且得到了封裝,一共開(kāi)發(fā)者使用。

跨平臺(tái)GUI通常有三種實(shí)現(xiàn)策略,分別是:

API 映射:API 映射是說(shuō),界面庫(kù)使用同一套 API,將其映射到不同的底層平臺(tái)上面。大體相當(dāng)于將不同平臺(tái)的 API 提取公共部分。比如說(shuō),將 Windows 平臺(tái)上的按鈕控件和 Mac OS 上的按鈕組件都取名為 Button。當(dāng)你使用 Button 時(shí),如果在 Windows 平臺(tái)上,則編譯成按鈕控件;如果在 Mac OS 上,則編譯成按鈕組件。這么做的好處是,所有組件都是原始平臺(tái)自有的,外觀和原生平臺(tái)一致;缺點(diǎn)是,編寫(xiě)庫(kù)代碼的時(shí)候需要大量工作用于適配不同平臺(tái),并且,只能提取相同部分的 API。比如 Mac OS 的文本框自帶拼寫(xiě)檢測(cè),但是 Windows 上面沒(méi)有,則不能提供該功能。這種策略的典型代表是 wxWidgets。這也是一個(gè)標(biāo)準(zhǔn)的 C++ 庫(kù),和 Qt 一樣龐大。它的語(yǔ)法看上去和 MFC 類似,有大量的宏。據(jù)說(shuō),一個(gè) MFC 程序員可以很容易的轉(zhuǎn)換到 wxWidgets 上面來(lái)。

API 模擬:前面提到,API 映射會(huì)“缺失”不同平臺(tái)的特定功能,而 API 模擬則是解決這一問(wèn)題。不同平臺(tái)的有差異 API,將使用工具庫(kù)自己的代碼用于模擬出來(lái)。按照前面的例子,Mac OS 上的文本框有拼寫(xiě)檢測(cè),但是 Windows 的沒(méi)有。那么,工具庫(kù)自己提供一個(gè)拼寫(xiě)檢測(cè)算法,讓 Windows 的文本框也有相同的功能。API 模擬的典型代表是 wine ——一個(gè) Linux 上面的 Windows 模擬器。它將大部分 Win32 API 在 Linux 上面模擬了出來(lái),讓 Linux 可以通過(guò) wine 運(yùn)行 Windows 程序。由此可以看出,API 模擬最大優(yōu)點(diǎn)是,應(yīng)用程序無(wú)需重新編譯,即可運(yùn)行到特定平臺(tái)上。另外一個(gè)例子是微軟提供的 DirectX,這個(gè)開(kāi)發(fā)庫(kù)將屏蔽掉不同顯卡硬件所提供的具體功能。使用這個(gè)庫(kù),你無(wú)需擔(dān)心硬件之間的差異,如果有的顯卡沒(méi)有提供該種功能,SDK 會(huì)使用軟件的方式加以實(shí)現(xiàn)。

GUI 模擬:任何平臺(tái)都提供了圖形繪制函數(shù),例如畫(huà)點(diǎn)、畫(huà)線、畫(huà)面等。有些工具庫(kù)利用這些基本函數(shù),再不同繪制出自己的組件,這就是 GUI 模擬。GUI 模擬的工作量無(wú)疑是很大的,因?yàn)樾枰褂米罨镜睦L圖函數(shù)將所有組件畫(huà)出來(lái);并且這種繪制很難保證和原生組件一模一樣。但是,這一代價(jià)帶來(lái)的優(yōu)勢(shì)是,可以很方便的修改組件的外觀——只要修改組件繪制函數(shù)即可。很多跨平臺(tái)的 GUI 庫(kù)都是使用的這種策略,例如 gtk+(這是一個(gè) C 語(yǔ)言的圖形界面庫(kù)。使用 C 語(yǔ)言很優(yōu)雅地實(shí)現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計(jì)。不過(guò),這也同樣帶來(lái)了一個(gè)問(wèn)題——使用大量的類型轉(zhuǎn)換的宏來(lái)模擬多態(tài),并且它的函數(shù)名一般都比較長(zhǎng),使用下劃線分割單詞,看上去和 Linux 如出一轍。gtk+ 并不是模擬的原生界面,而有它自己的風(fēng)格,所以有時(shí)候就會(huì)和操作系統(tǒng)的界面格格不入。),Swing 以及我們的 Qt。

Qt 和 wxWidgets 一樣,也是一個(gè)標(biāo)準(zhǔn)的 C++ 庫(kù)。但是它的語(yǔ)法類似于 Java 的 Swing,十分清晰,而且使用信號(hào)槽(signal/slot)機(jī)制,讓程序看起來(lái)很明白——這也是很多人優(yōu)先選擇 Qt 的一個(gè)很重要的原因。不過(guò),所謂“成也蕭何,敗也蕭何”。這種機(jī)制雖然很清楚,但是它所帶來(lái)的后果是你需要使用 Qt 的 moc 對(duì)程序進(jìn)行預(yù)處理,才能夠再使用標(biāo)準(zhǔn)的 make 或者 nmake 進(jìn)行正常的編譯,并且信號(hào)槽的調(diào)用要比普通的函數(shù)調(diào)用慢大約一個(gè)數(shù)量級(jí)(Qt 4 文檔中說(shuō)明該數(shù)據(jù),但 Qt 5 尚未有官方說(shuō)明)。Qt 的界面也不是原生風(fēng)格的,盡管 Qt 使用 style 機(jī)制十分巧妙地模擬了原生界面。另外值得一提的是,Qt 不僅僅能夠運(yùn)行在桌面環(huán)境中,還可以運(yùn)行在嵌入式平臺(tái)以及手機(jī)平臺(tái)。

Qt 第一版于 1991 年由 Trolltech (奇趣科技)發(fā)布。后來(lái)在 2008 年,Nokia 斥資 1.5 億美元收購(gòu) TrollTech,將 Qt 應(yīng)用于 Symbian 程序開(kāi)發(fā)。2012 年 8 月 9 日,Nokia 將 Qt 以 400 萬(wàn)歐元的價(jià)格出售給 Digia。

伴隨著 Qt,一直有兩種授權(quán)協(xié)議:商業(yè)授權(quán)以及開(kāi)源授權(quán)。在 Qt 的早期版本,商業(yè)授權(quán)包含一些開(kāi)源授權(quán)不提供的組件,但是在近期版本則不存在這個(gè)問(wèn)題。以往人們對(duì) Qt 的開(kāi)源授權(quán)多有詬病。早期版本的 Qt 使用與 GPL 不兼容的協(xié)議授權(quán),這直接導(dǎo)致了 KDE 與 GNOME 的戰(zhàn)爭(zhēng)(由于 Linux 使用 GPL 協(xié)議發(fā)布,GPL 協(xié)議具有傳染性,作為 Linux 桌面環(huán)境的 KDE 卻是基于與 GPL 不兼容的 Qt 開(kāi)發(fā),這就不遵守 GPL 協(xié)議)。不過(guò),現(xiàn)在 Qt 的開(kāi)源版本使用的是 GPLv3 以及 LGPL 協(xié)議。這意味著,你可以將 Qt 作為一個(gè)庫(kù)連接到一個(gè)閉源軟件里面??梢哉f(shuō),Qt 協(xié)議的爭(zhēng)議已經(jīng)不存在了。

回到頂部(go to top)

二、Qt的安裝與配置2.1 Qt的安裝

 

 

上面是兩種Qt,第一種是使用mingw編譯和調(diào)試開(kāi)發(fā)的Qt,第二種(紅線中)是使用msvc也就是vs調(diào)試和編譯的Qt。開(kāi)始學(xué)習(xí)的建議安裝第一種,自帶gcc編譯器和gdb調(diào)試器。安裝過(guò)程就不說(shuō)了,一路綠燈就行,安裝完之后的狀態(tài)如下圖。

 

 

2.2Qt的項(xiàng)目創(chuàng)建

 

 

 

一直往下,中間過(guò)程就是自己改一下項(xiàng)目的名字和文件名字,直到出現(xiàn)下面的圖,就是創(chuàng)建完成了。

 

 

 

 

上圖是創(chuàng)建好的工程,這樣就是可以運(yùn)行的。

2.3 Qt的配置這里說(shuō)一下mingw版本的配置,此外msvc版本的Qt的編譯器和調(diào)試器都是msvc(我的具體版本是MSVC2013)。

我的是32bit,然后所有的編譯器和調(diào)試器都是套件自帶的,不用另行下載。

 

 

 

 

 

 

好了,Qt的開(kāi)始工作做好了,就可以開(kāi)始學(xué)習(xí)了,就先到這里。

no pains ,no gains. 給自己加油,為未來(lái)奮斗。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉