Qt 5編程入門

Qt 5編程入門 pdf epub mobi txt 電子書 下載 2025

霍亞飛,程梁 著
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 北京航空航天大學齣版社
ISBN:9787512416673
版次:1
商品編碼:11649619
包裝:平裝
開本:16開
齣版時間:2015-02-01
用紙:膠版紙
頁數:388

具體描述

編輯推薦

  全新,基於 Qt 5.3 編寫,全麵涉及 Qt Quick;
  經典,植根於 Qt 網絡博客教程,可無限更新;
  基礎,對每個知識點詳盡講解,並設計瞭示例程序;
  係統,與《Qt Creator 快速入門(第2版)》相輔相成。

內容簡介

  《Qt 5編程入門》是基於Qt 5的QML和Qt Quick入門書籍,詳細介紹瞭QML語言的語法和編寫Qt Quick程序需要用到的基本知識點。《Qt 5編程入門》內容主要包括Qt 5的介紹、QML語法、Qt Quick基礎知識以及在圖形動畫、數據處理和多媒體方麵的應用等。
  《Qt 5編程入門》側重講解Qt 5中QML和Qt Quick的內容,適閤希望學習QML編程以及希望使用Qt開發移動應用的讀者。對於沒有任何Qt基礎或者想學習Qt C++編程的讀者,可以參考《Qt Creator快速入門(第2版)》一書。
  《Qt 5編程入門》內容源於作者的網絡博客,作者會在網上及時解答讀者疑問、更新修改內容、發布相關教程和配套資料,敬請讀者關注Qter開源社區(www.qter.org)的相關內容。

作者簡介

  霍亞飛,網名yafeilinux,嵌入式軟件工程師,熱愛編程,熱愛開源!在博客中發錶瞭大量Qt、Linux教程和開源軟件,被眾多網友奉為經典!參與創建瞭www.yafeilinux.com和Qt愛好者社區(www.qter.org),進行Qt及開源項目的推廣和普及!  程梁,網名devbean,軟件研發工程師,關注IT技術的創新和改革,專注於Qt技術開發教程的編寫。
  建立devbean.net博客,創作大量有創意、實踐性強的技術開發文章,與廣大網友分享、互動,
  在網絡上廣受好評。緻力於帶領廣大Qt愛好者步入Qt的精彩世界,與更多朋友分享成功的樂趣。

目錄

第1章Qt 5簡介1
1.1Qt 5架構1
1.1.1模塊架構1
1.1.2圖形界麵庫的架構5
1.1.3Qt 5架構主要特點6
1.2Qt 5的特點6
1.2.1Qt 5新增的主要功能6
1.2.2Qt 5與Qt 4的兼容性11
1.2.3C++還是QML12
1.2.4Qt 5源代碼文件的編碼12
1.2.5移動平颱開發13
1.3小結13

第2章將Qt 4代碼遷移到Qt 514
2.1Qt 5版本的HelloWorld14
2.1.1Qt 5的下載與安裝14
2.1.2創建Hello World程序15
2.1.3Qt 4程序遷移到Qt 5的注意事項17
2.2Qt 4程序遷移實例19
2.2.1修改編碼19
2.2.2修改代碼20
2.2.3設置應用程序圖標21
2.2.4發布程序22
2.3新的信號槽語法22
2.3.1新舊語法對比22
2.3.2新的語法示例23
2.4對C++11的支持26
2.4.1Lambda錶達式26
2.4.2適用於C++11的宏28
2.5全新的插件係統29
2.6小結32

第3章Qt Quick的世界33
3.1全新的QML和Qt Quick33
3.2Qt Quick項目36
3.2.1Qt Quick UI項目36
3.2.2Qt Quick Application項目39
3.2.3運行示例程序42
3.2.4Qt Quick程序的發布42
3.3將QML程序遷移到Qt 542
3.3.1Qt 5中QML和Qt Quick的更改43
3.3.2QML 程序移植示例46
3.4小結48

第4章QML語法49
4.1QML語法基礎49
4.2import導入語句51
4.2.1模塊(命名空間)導入語句52
4.2.2目錄導入語句53
4.2.3JavaScript資源導入語句55
4.3QML類型係統55
4.3.1基本類型55
4.3.2JavaScript類型57
4.3.3對象類型57
4.4對象特性(Attributes)57
4.4.1id特性58
4.4.2屬性特性58
4.4.3信號和信號處理器特性65
4.4.4方法特性69
4.4.5附加屬性和附加信號處理器70
4.5集成JavaScript72
4.5.1JavaScript錶達式72
4.5.2從JavaScript動態創建QML對象77
4.5.3在QML中定義JavaScript資源81
4.5.4在QML中導入JavaScript資源83
4.5.5JavaScript宿主環境85
4.6QML文檔86
4.6.1通過QML文檔定義對象類型87
4.6.2QML組件89
4.6.3作用域和命名解析90
4.6.4資源加載和網絡透明性95
4.6.5QML的國際化97
4.6.6QML的編碼約定100
4.7QML模塊103
4.7.1定義一個QML模塊103
4.7.2支持的QML模塊類型104
4.8小結104

第5章Qt Quick基礎105
5.1基礎可視項目105
5.1.1Item105
5.1.2Rectangle109
5.1.3Text110
5.1.4TextInput117
5.1.5TextEdit120
5.2布局管理121
5.2.1定位器(Positioners)121
5.2.2基於錨(anchors)的布局126
5.2.3Layouts129
5.3事件處理133
5.3.1MouseArea133
5.3.2鼠標事件(MouseEvent)和滾輪事件(WheelEvent)135
5.3.3拖放事件(DragEvent)136
5.3.4鍵盤事件(KeyEvent)和焦點作用域(FocusScope)140
5.3.5定時器(Timer)145
5.4使用Loader動態加載組件145
5.4.1Loader的大小與行為146
5.4.2從加載的項目中接收信號147
5.4.3焦點和鍵盤事件147
5.5小結148

第6章Qt Quick控件和對話框149
6.1構建第一個示例149
6.2ApplicationWindow應用程序窗口150
6.3Window154
6.4按鈕類控件155
6.4.1ExclusiveGroup156
6.4.2Button157
6.4.3CheckBox157
6.4.4RadioButton158
6.4.5Switch158
6.5數據選擇類控件159
6.5.1ComboBox159
6.5.2Slider160
6.5.3SpinBox161
6.6文本類控件161
6.6.1TextField161
6.6.2TextArea162
6.7其他控件163
6.7.1Label163
6.7.2GroupBox163
6.7.3BusyIndicator164
6.7.4ProgressBar164
6.8導航類視圖165
6.8.1ScrollView165
6.8.2SplitView165
6.8.3StackView166
6.8.4TabView170
6.8.5TableView171
6.9標準對話框172
6.9.1ColorDialog173
6.9.2FileDialog173
6.9.3FontDialog174
6.9.4MessageDialog175
6.10定義控件樣式176
6.11小結177

第7章圖形動畫基礎178
7.1顔色、漸變和調色闆178
7.1.1顔色(color)178
7.1.2漸變(Gradient)181
7.1.3係統調色闆(SystemPalette)181
7.2圖片、邊界圖片和動態圖片182
7.2.1圖片(Image)182
7.2.2邊界圖片(BorderImage)184
7.2.3動態圖片(AnimatedImage)185
7.3縮放、鏇轉和平移變換186
7.3.1使用屬性實現簡單變換186
7.3.2使用Transform實現高級變換188
7.4狀態(State)189
7.4.1創建狀態190
7.4.2默認狀態和when屬性191
7.5動畫和過渡192
7.5.1觸發動畫193
7.5.2控製動畫的執行198
7.5.3精靈動畫(Sprite Animations)199
7.5.4共享動畫實例203
7.6Flickable和Flipable204
7.6.1彈動效果(Flickable)204
7.6.2翻轉效果(Flipable)206
7.7小結207

第8章圖形效果208
8.1混閤效果(Blend)209
8.2顔色效果(Color)211
8.3漸變效果(Gradient)214
8.3.1錐形漸變(ConicalGradient)214
8.3.2綫性漸變(LinearGradient)
215
8.3.3輻射漸變(RadialGradient)215
8.4變形效果(Distortion)216
8.5陰影效果(Drop Shadow)217
8.5.1投影(DropShadow)217
8.5.2內陰影(InnerShadow)218
8.6模糊效果(Blur)219
8.6.1快速模糊(FastBlur)219
8.6.2高斯模糊(GaussianBlur)220
8.6.3遞歸模糊(RecursiveBlur)220
8.6.4遮罩模糊(MaskedBlur)221
8.7動感模糊效果(Motion Blur)222
8.7.1方嚮模糊(DirectionalBlur)222
8.7.2徑嚮模糊(RadialBlur)223
8.7.3縮放模糊(ZoomBlur)224
8.8發光效果(Glow)225
8.8.1發光(Glow)225
8.8.2矩形發光(RectangularGlow)226
8.9遮罩效果(Mask)227
8.9.1不透明遮罩(OpacityMask)227
8.9.2閥值遮罩(ThresholdMask)228
8.10小結229

第9章粒子係統230
9.1ParticleSystem230
9.2發射器(Emitter)232
9.3渲染器(ParticlePainters)233
9.4TrailEmitter236
9.5粒子組237
9.6隨機參數239
9.7影響器(Affector)240
9.8小結245

第10章Canvas基礎246
10.1Canvas的使用246
10.2繪製操作248
10.2.1繪製參數設置248
10.2.2繪製矩形250
10.2.3狀態的保存與恢復251
10.2.4繪製文本252
10.2.5繪製路徑254
10.3漸變填充259
10.3.1綫性漸變259
10.3.2輻射漸變260
10.3.3錐形漸變261
10.4陰影261
10.5使用圖像262
10.6坐標變換264
10.6.1平移264
10.6.2縮放265
10.6.3鏇轉266
10.6.4扭麯267
10.6.5transform()函數總結267
10.7小結268

第11章模型和視圖269
11.1模型/視圖架構簡介269
11.2數據模型271
11.2.1ListModel271
11.2.2WorkerScript273
11.2.3ObjectModel275
11.2.4DelegateModel275
11.2.5Package277
11.2.6XmlListModel278
11.2.7LocalStorage279
11.2.8使用C++擴展QML模型282
11.3視圖類型285
11.3.1ListView286
11.3.2GridView291
11.3.3視圖過渡292
11.3.4PathView295
11.3.5WebView298
11.4調整性能299
11.5小結300

第12章多媒體應用301
12.1多媒體模塊介紹301
12.2播放音頻302
12.2.1播放壓縮音頻302
12.2.2播放未壓縮音頻304
12.3播放視頻304
12.3.1使用Video播放視頻文件304
12.3.2對視頻使用圖形效果305
12.4媒體播放器(MediaPlayer)308
12.4.1播放音視頻308
12.4.2使用Windows平颱附加功能309
12.5小結314

第13章QML與C++的集成315
13.1QML運行時的C++類316
13.1.1QQmlEngine316
13.1.2QQmlContext317
13.1.3QQmlComponent318
13.1.4QQmlExpression320
13.2在QML中使用C++特性320
13.2.1數據類型處理和擁有權320
13.2.2數據類型的轉換321
13.2.3使用C++屬性323
13.2.4使用函數和槽327
13.2.5使用信號328
13.3注冊QML類型329
13.3.1注冊可實例化對象類型329
13.3.2注冊不可實例化對象類型330
13.3.3注冊單例類型330
13.3.4類型的修訂和版本331
13.4定義QML特定類型和屬性332
13.4.1提供附加對象注解數據332
13.4.2屬性修飾符類型335
13.4.3指定QML對象類型的默認屬性337
13.4.4接收對象初始化通知337
13.5在C++中使用QML對象338
13.5.1使用C++加載QML對象338
13.5.2使用對象名字訪問加載的QML對象339
13.5.3使用C++訪問QML對象成員340
13.6小結343

第14章使用Qt Quick設計器344
14.1常用操作介紹345
14.1.1管理項目層次345
14.1.2QML類型庫346
14.1.3指定項目屬性347
14.1.4添加狀態349
14.1.5在畫布上操作QML類型349
14.2使用設計器編輯QML文檔351
14.2.1創建項目351
14.2.2創建主視圖351
14.2.3添加視圖355
14.2.4為視圖添加動畫356
14.3小結358

附錄AQt 版本介紹359
附錄BQt 5中C++ API更改361
附錄CQML常用術語371
參考文獻373









前言/序言

  Qt 5編程入門的原型是網絡上的一係列Qt博客教程,是該係列教程衍生齣的第三本。2012年齣版的《Qt Creator快速入門》和《Qt及Qt Quick開發實戰精解》至今已經有兩年多的時間,在這期間Qt的命運發生瞭翻天覆地的變化。2012年8月,諾基亞將Qt齣售給同在芬蘭的Digia公司,後者緻力於發展Qt的商業授權用戶,同時提供瞭Qt社區的良好運行環境。伴隨著Qt Project(qt�瞤roject.org)的成立,Qt本身的開發終於成為一個真正的開放源代碼項目。之後的Qt 5發布,使得Qt已經開始支持包括Windows、Linux、Mac OS X、Android、iOS、BlackBerry、Sailfish等在內的十幾個桌麵和移動平颱。我們看到Qt的身世一波三摺,但是又有足夠的理由相信Qt的未來會越來越好。  因為在博客中發錶Qt教程,所以認識瞭很多Qt愛好者和普及者,其中包括本書的另外一名作者程梁(網名豆子、devbean)。豆子與我的經曆類似:我從2009年開始在百度博客上編寫Qt Creator係列教程,因為圖文並茂,簡單易懂,所以得到瞭眾多網友的肯定;而豆子也從2009年開始,在51 CTO博客中推齣Qt學習之路係列教程,因為講解細緻,擁有自己的獨到見解,所以受到瞭廣大網友的熱捧,後來被51 CTO專題收錄,現在總瀏覽量已有數百萬。後來我從百度博客遷移到自己的yafeilinux.com個人博客,而豆子也從51 CTO博客轉移到自己的個人博客網站devbean.net。有著如此相似經曆的兩個人走到一起會發生什麼呢?就是組建瞭更符閤網友需求的Qter開源社區(qter.org)。這個社區一直在發展,我們的目標就是要為各位緻力於學習Qt的朋友提供一個便捷之門。  隨著Qt 5的發布,我們經常可以在論壇上看到需要Qt 5相關教程和書籍的朋友。Qt 5的全新框架、Qt Quick 2 技術以及最新版本的 Qt 提供瞭對現在非常流行的Android和iOS等移動平颱的支持,都使得現在想要學習Qt的讀者數量劇增。現階段國內外圖書市場上極少有關於Qt 5的書籍,但是卻擁有眾多需要該類書籍的初學者和開發者。為瞭解決這個矛盾,我和豆子決定再做一次第一個吃螃蟹的人,從而有瞭本書。  Qt的曆史  Qt是由奇趣科技公司(Trolltech)的兩位創始人Haavard Nord和Eirik Chambe�睧ng閤作開發而成的,首個版本完成於1991年,而第一個商業版本則是在1995年纔正式推齣。  Qt的名字來源於一個有趣的故事。當時這個工具之所以取名為Qt,是因為在Haavard的Emacs字體中,字母Q看起來非常漂亮;而字母t的靈感則來源於當時的另外一個工具Xt(X toolkit)的取名。  最初Qt隻有兩個版本:適用於類Unix平颱的Qt/X11和適用於Windows平颱的Qt/Windows。其中,Windows版本隻有專利授權,這意味著如果需要將使用Qt/X11編寫的開源應用移植到Windows平颱,必須購買專利授權。  2001年底,奇趣科技發布Qt 3.0,從這個版本起,Qt增加瞭對Mac OS X平颱的支持。不過,直到2003年6月之前,Mac OS X版本的Qt也隻有專利授權。當Qt 3.2發布的時候,奇趣科技纔增加瞭Mac OS X平颱的GPL授權。  2005年6月28日,奇趣科技發布瞭Qt 4.0。這是一個全新的版本,與之前的3.x係列不僅二進製不兼容,甚至API也不兼容。這在一定程度上使人頗有微詞。  2008年6月17日,諾基亞公司宣布以公開競購的方式收購奇趣科技,連同奇趣科技旗下的Qt。同年,諾基亞將Qt的名字更改為Qt Software,然後又更改為Qt Development Framework。在諾基亞的領導下,Qt的工作重心由桌麵係統轉移至諾基亞旗下的手持設備。2009年5月11日,諾基亞宣布Qt源代碼在著名的git托管平颱Gitotious麵嚮公眾開放,標誌著Qt正式成為麵嚮社區的開源框架。不過,盡管諾基亞承諾Qt開放源代碼,但事實上Qt的代碼提交與維護仍然牢牢掌握在諾基亞手中。2009年12月1日,Qt 4.6發布,這是第一個移植到Symbian S60平颱的版本。  2011年2月,諾基亞宣布放棄自己的Symbian平颱,轉而投嚮微軟公司的Windows Phone平颱。一個月之後,諾基亞宣布將Qt的商業授權和專業服務齣售給Digia公司。後者啓動瞭Qt Project,同時宣布將努力促使Qt支持Android、iOS和Windows Phone三大平颱,並且繼續關注於桌麵和嵌入式平颱的開發,這意味著Qt正在努力成為一個全平颱的開發框架。現在看來,在一定程度上,Digia的確做到瞭這一點。  Qt 4之後的下一個大的版本Qt 5原計劃於2012年6月發布,但是由於諾基亞的政策調整和齣售Qt的緣故,直到2012年12月19日,Qt 5.0纔正式發布。這是繼Qt 4之後另一個大的升級。錶麵看來,Qt 4到Qt 5的改動並不比Qt 3到Qt 4來得激進,但是Qt 5引入瞭全新的硬件加速圖形處理,並且將QML與JavaScript提升到同C++相等的地位。傳統的基於C++的Qt Widgets仍將繼續支持,但是全新的架構所帶來的性能提升則更多作用於QML和JavaScript。  值得一提的是,Qt 5的開發真正由Qt Project社區驅動,現在Qt已經允許諾基亞和Digia之外的開發人員提交並審核代碼。  Digia接管Qt業務以後,Qt的開發速度有瞭明顯提升。2013年7月3日,Qt 5.1發布。Qt 5.1除瞭修改5.0版本的bug之外,更帶來瞭Android和iOS平颱的實驗性支持。2013年12月12日發布的Qt 5.2版本,則正式引入對Android和iOS平颱的支持;同時,Qt 5.2引入瞭一個新的場景圖像渲染器,針對OpenGL後端提升瞭矢量繪製的性能,將GPU的占用降至最低。2014年5月20日,Qt 5.3發布。Qt 5.3改進瞭對iOS平颱的支持,並且開始支持WinRT平颱。這為Qt成為全平颱的開發工具更進一步。  Qt授權  Qt的授權一直比較復雜,既包括商業授權,又包括開源授權,並且不同版本之間的授權並不一緻。下麵我們來詳細介紹下有關授權的問題。  首先需要說明的是,Qt自發明以來一直都有一個商業授權。這個商業授權允許開發者開發專有程序。同時,Qt商業授權除瞭包含Qt開源版的一切功能外,還包括一些企業應用的組件,比如Qt Charts、Qt Data Visualization等;還有Digia公司支持的Qt培訓等內容。  真正復雜的是Qt開源授權。Qt 1.45之前,Qt的源代碼一直遵循FreeQt協議。該協議既不符閤Open Source Initiative定義的開放源代碼原則,也不符閤Free Software Foundation定義的自由軟件。在此協議下,Qt的源代碼雖然可用,但是並不允許重新發布修改過的版本。  1998年,基於Qt的KDE成為Linux最流行的桌麵環境之一。不過,因為Qt協議的問題,很多人擔心這將給KDE桌麵環境的發展帶來影響。這也正是日後Qt協議問題的根源之一。  Qt 2.0的開源授權由FreeQt更改為Q Public License(QPL)。這是一個自由軟件協議,但是與GPL不兼容,而後者纔是Linux遵循的協議。作為妥協,KDE團隊與當時的奇趣科技達成協議,即使奇趣科技瀕臨破産,也不能使Qt的協議比QPL更加專有。直到2000年,Qt/X11 2.2正式以GPLv2協議發布,纔終結瞭這一授權的法律問題。  2002年,KDE on Cygwin項目開始將GPL授權的Qt/X11移植到Windows平颱。此時,Windows平颱還沒有一個開源版本的Qt。不過,該項目並沒有取得成功,但卻直接導緻奇趣科技在2005年6月將Qt/Windows 4以GPL授權的形式發布。至此,Qt 4在全部主流桌麵平颱都有瞭基於GPL協議的開源版本。隨著GPLv3發布,Qt又增加瞭具有額外條款的GPLv3協議。這個“額外條款”允許將Qt編寫的最終應用程序以不兼容GPL的自由軟件/開源協議發布。  雖然此時的Qt已經有瞭自己的開源版本,但是作為一個類庫,使用GPL協議開源具有一定的危險性。由於GPL的傳染性,GPL不允許發布閉源程序。這種協議將極大地限製Qt在商業軟件領域的應用。所以在2009年1月14日,Qt 4.5終於眾望所歸地增加瞭LGPL協議,允許使用Qt開發閉源程序。  盡管曆史很復雜,但是我們的結論很簡單:最新的Qt 5.3版本使用兩種協議發布——商業協議和LGPL 2.1。  本書特色  本書是經典的Qt應用編程係列叢書繼《Qt Creator快速入門》和《Qt及Qt Quick開發實戰精解》之後的又一力作,是市麵上為數不多的全麵介紹Qt 5、QML和Qt Quick的入門書籍。與其他相關書籍最大的不同之處還包括,本書是基於網絡教程的。綜閤來說,本書主要具有以下特色:  最新。本書基於最新的Qt 5.3.0和Qt Creator 3.1.1版本進行編寫,Qt 5.3.0是Qt 5的最新的穩定版本。  基於社區。本書以Qter開源社區為依托,由社區站長閤作完成。讀者可以通過論壇、郵件、QQ群等方式和作者零距離交流。  無限更新。本書對應的網絡教程是無限更新的,本書已經是該網絡教程衍生的第三本書瞭。  全新風格。本書力求以全新的視角,引領開發者進行程序代碼的編寫和升級,同時以初學者的角度進行敘述,每個小知識點都以一個完整的程序來講解。盡量避免晦澀難懂的術語,使用初學者易於理解的平白的語言編寫,目標是讓初學者在快樂中掌握知識。  授之以漁。在整書的編寫過程中,都是在嚮讀者傳授一種學習方法,告訴讀者怎樣發現問題、解決問題,怎樣獲取知識,而不是嚮讀者灌輸知識。本書的編寫基於Qt參考文檔,所講解的知識點多數是Qt參考文檔中的部分內容,大傢在學習時一定要多參考Qt幫助文檔。在本套書籍講解的所有知識點和示例程序中,都很明顯地標齣瞭其在Qt幫助中對應的關鍵字,從而讓讀者對書中的內容有跡可循。  本書結構  本書著重講解Qt 5中QML和Qt Quick的編程知識,首先對Qt 5進行瞭整體介紹以及如何從Qt 4項目移植到Qt 5的介紹,然後講解瞭QML語法和Qt Quick的基礎內容,後麵的幾章講解瞭Qt Quick在圖像特效、繪畫、多媒體、數據顯示和處理等方麵的高級應用。全書的目錄結構如下錶所列。

用戶評價

評分

都給好評吧,我也不知道好壞

評分

c++讀本,編程專用書,排版還可以,挺好的

評分

c++讀本,編程專用書,排版還可以,挺好的

評分

還沒看多少,沒發覺有什麼不太滿意的

評分

很棒。一天就到瞭!

評分

太簡單太片麵瞭,我的boss說的,所以又要重新買

評分

書淺顯易懂,不錯,隻是現在這類書還是太少。

評分

內容挺不錯的,算是半個導讀。比較全。印刷圖中可見。堪比盜版哈哈

評分

很好,書的質量很好,送貨迅速

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有