-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Qt Quick核心編程

( 簡體 字)
作者:安曉輝類別:1. -> 作業系統 -> Linux -> QT
譯者:
出版社:電子工業出版社Qt Quick核心編程 3dWoo書號: 40267
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:1/1/2015
頁數:512
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787121246845
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

為什么寫作本書
今年(2014年)4月份,我開始寫作《Qt on Android核心編程》,該書主要講述Qt on Android的核心技術,比如信號與槽、元對象系統、Qt與Android的銜接、Android相關的開發主題等,對于界面開發,還是基于Qt傳統的Widgets。
在寫作的過程中,不斷有技術同仁向我咨詢Qt Quick的問題,有諸如對象如何聲明、怎樣定義函數等入門級的問題,也有QML與C++如何交互、如何定制ListView等進階問題……于是我想,為什么大家關注Qt Quick與QML?結論很簡單,正如Qt Quick的名字一樣,用它來開發界面,真是飛一般的感覺;更讓人快感迭起的是,Qt Quick里的絕大多數界面元素,都可以定制,都是任人裝扮的小姑娘,甚至還可以從頭開始快速構建專屬于你的界面組件;還有頂頂重要的是,QML與Qt C++的完美結合為開發者帶來了無與倫比的靈活性。
但是限于篇幅,這些精彩不能夠在《Qt on Android核心編程》一書中介紹。于是我決定另寫一本專門講述Qt Quick的書籍,而且定位在入門層面,因為我本人也才入門而已。
Qt 5之后,Qt Quick與Qt Widgets并駕齊驅,成為Qt界面技術的雙飛翼。而介紹Qt Quick本身的技術資料、書籍卻少之又少。搜遍互聯網,也很難找到系統介紹Qt Quick的文章,多數是開發者使用某個主題后的片段記錄與日志。即使這些寶貴的經驗片段,也因為Qt Quick版本的問題而不一定能夠正常使用。更可惜的是,Qt Quick適用于Android等移動平臺,而這方面的資料和實踐,卻更加芳蹤難覓。所有這一切,既給我的學習增加了困難,也堅定了我寫一本Qt Quick入門書籍的決心。
做出這個決定的過程也頗為艱難,因為寫作《Qt on Android核心編程》給我和家人的生活帶來了非常大的影響。獨自完成一本書是一項非常浩大的工程,工作量不說,所花心思是極多極難量化的:你會擔心選取的主題、角度是否合適,你提供的示例不僅要在語法和運行層面上正確,還要思量它是否能恰到好處地演示你講解的主題……而在你念茲在茲、廢寢忘食、心無旁騖、形容枯槁地琢磨著寫作時,你也忽略掉了身邊的老婆、孩子、親友,你整天都在飄啊,挺奇怪的感覺,干什么事兒都是人在心不在,這樣的你,對身邊親友的影響可想而知。我剛剛從這種狀態中出來,還未及好好地放松幾天,就又決定重開爐灶,鍛鑄新兵,對于我的老婆、孩子,都是很難啟口之事。可是我又擔心一旦放下當前火熱的念頭,哪天想重新來過時,卻激情不再冷灰難燃。于是我偷偷地開始了這項工作,直到進行了將近一半時,才告訴老婆,相信她能理解,而她也確實理解并支持我,她是我最該感謝的人。
寫作本書的過程,也是我學習的過程,書中多數章節都來源于我在自學時記錄的筆記和完成的示例。對于我遇到的困惑,對于那些讓我輾轉反復難以理解的主題,我特意將這個主題本身、它牽涉到的其他主題、它需要的基礎知識都一一記錄下來,能放在一起講解的盡量放在一起,需要獨立成章的,也費盡心思安排前后順序。可以說,這本書是我在Qt Quick這條路上練級打怪的備忘錄。
每當完成一個章節、一個示例時,我都感到由衷的高興,可也感到莫名的失落:就快要結束了……當初《Qt on Android核心編程》完稿時,我就對這種愛女遠飛、空虛、落寞、失去憑借與寄托的感覺很不適應。而現在我再次經歷著這一切,我其實希望這是一場沒有終點的旅行,但,它不是。
我把這一切記錄在這里,我想說,愛過,寫過,失落過,高興過,低徊過,迷惘過,不管怎樣,我從未對那些流過的汗水、付出的精力后悔過,如果還有機會,我還愿意再這樣走上一遭。
致謝
首先要感謝的,是本書的策劃編輯高洪霞老師,沒有她的支持和幫助,寫作本書的旅程很難有機會成行。在寫作過程中,高老師也給予了我很多關切以及中肯的建議,對本書的寫作具有至關重要的意義。
我要特別感謝本書的文字編輯葛娜老師,她辛苦而卓有成效的工作,使得書稿更為整潔、漂亮。
還要感謝出版社以及本書的各位編輯,沒有你們的辛苦付出和鼎力幫助,本書絕難順利付梓出版。
接下來要感謝的,是我的老婆趙建媛女士,盡管她陪我經歷了寫作《Qt on Android核心編程》的恐怖旅程,但還是義無反顧地跟我踏上了新的征途。她寬容、大度、善解人意,毫不計較我的先斬后奏,在精神上和行動上給予我無限支持。我對寫書心無旁騖,而對她的關心呈指數下降仿若移情別戀,但她依然微笑著陪我前行。沒有老婆不拋棄、不放棄的支持,實在難以想象我可以再次完成“寫作一本書”這樣曠日持久、龐大浩繁的工程。
另外,還要感謝我美麗可愛的女兒安悅瑄小朋友,此時她已快五歲了(10月份生日),看到我又開始寫書,她就問我之前的書什么時候可以出來,她想要一本,還說將來寫書也給我一本。我們已經約定好了,就差拉鉤上吊一百年不許變誰變誰是小狗啦。
特別感謝上海Qt開發聯盟(QQ群號279906625)和Qt 5 for Android/iOS(QQ群號19346666)這兩個群的群友們。真心感謝那些解答我疑問、幫我做試驗的大神們,你們的大愛無疆與高風亮節幫助我避開了修煉Qt Quick這門高深武術時常見的各種走火入魔癥狀。由衷地感謝那些不斷向我提問的Q友們,你們總能擊中我的軟肋,讓我痛定思痛繼續修煉始終不忘初心。
必須感謝所有在我寫作期間對我噓寒問暖、給予我幫助的朋友們,是你們讓我覺得世界如春風如秋陽,溫暖宜人,你們與神同在,光芒照耀四方。
最后,也最應該感謝的,是肯花費時間和精力閱讀本書的讀者,你們的意見和建議,我會視若珍寶并以之為鞭奮力前行。
本書適合誰
本書是專門講述Qt技術中的Qt Quick框架的。Qt Quick可以作為一項獨立技術而存在,只使用Qt Quick就可以構建功能豐富的應用。如果結合Qt C++,則可以讓你肋生雙翅,翱翔藍天。
如果你從未接觸過Qt而希望直接學習Qt Quick,沒有任何問題,本書行文時已作考慮,以期自成一體,除了第11章以及部分混合使用QML與C++的示例,其他章節都不需要專門的Qt基礎,也不需要專門的C、C++基礎。正如書名所示,本書是Qt Quick的入門導引,是將其作為一門新語言、一項新技術來介紹的。
第2章從零開始,詳細地介紹了Qt SDK的安裝、Qt Creator IDE、基于Qt Quick的Hello World,還介紹了行走江湖必備的工具——Qt幫助和qmlscene。
第3章簡要介紹了QML語言的入門基礎,讓你能夠快速看懂、理解QML文檔,能夠自己動手做一些小實驗。
第4章在Hello World的基礎上分析了Qt Quick應用的基本程序結構,同時引入了對Window、Rectangle、Button、Text、Image等常見元素的介紹,讀完這章,你已經可以完成一些有實際意義的應用軟件了。
雖然第2∼4章可以讓你快速跨過Qt Quick的門檻,進入絢爛多姿的新世界,可它們也留下了很多疑問,因此我精心準備了第5章——ECMAScript初探,以便幫助你查漏補缺,建立堅實的QML基礎。
如果你有C++基礎,沒有GUI編程經驗,現在想開發跨平臺的應用軟件,那么本書可以幫助你達成愿望。選擇Qt進行任何類型的軟件開發都是十分明智的。你不但可以獲得令人嘆為觀止的用戶界面和非同凡響的性能,還能讓它們運行在多種屏幕、設備、操作系統、平臺上,這簡直無法用語言形容。而Qt Quick,可以讓你從容地從零開始這曼妙的旅程。
本書的第6∼9章進一步帶你熟悉Qt Quick,事件處理、更多的基礎控件、動態加載控件、創建屬于你自己的元素、在界面上合理安排眾多的UI元素,有了這些進階知識,你可以更為自如地打造你的應用了。
如果你已經能夠熟練地使用Qt C++開發軟件,有一定的GUI編程經驗,現在想學習Qt Quick,想更加快速、高效地完成各種應用,本書也適合你,你會發現既有的經驗可以讓自己更快地熟悉Qt Quick的各種主題。比如第10章的Canvas、第11章的C++與QML混合編程、第12章的動畫、第13章的Model/View、第14章的多媒體、第15章的網絡,在Qt C++中都可以找到對應的主題……總之,有了Qt C++的基礎,會事半功倍。
如果你已經有一定的Qt Quick基礎,本書也可以幫助你鞏固和完善既有的知識與經驗,筆者相信本書提供的ECMAScript基礎(第5章)、Qt Quick事件處理(第6章)、動畫(第12章)、Model/View(第13章)、QML與C++混合編程(第11章)等,都是在別處很難獲得的、相當詳盡的系統性論述。

總之,本書針對以下讀者群:
想開發GUI應用、有一定編程經驗的開發人員。
熟悉C++或其他開發語言,熟悉面向對象程序設計的有經驗的開發人員。
熟悉Qt C++,由于Qt Quick與Qt相關而想了解它的開發人員。
有一定的Qt Quick基礎,想更好地了解它的初學者。
熟悉Qt Quick,想更好地了解各種主題細節的進階開發者。
有特定平臺開發經驗,希望開發跨平臺應用的開發者。
熟悉Web頁面開發,現在需要開發本地應用的開發者。
有計算機基礎,想學習GUI編程的愛好者。
那么,本書不適合誰呢?沒有任何計算機科學基礎背景、連辦公軟件都沒用過、不能理解軟件為何物的超級初學者,建議還是先找其他書籍看看。
你需要什么技術基礎
Qt Quick是以Qt和ECMAScript為基礎的,而Qt是基于C++的。
如果你有一點C++、Java、JavaScript或其他編程語言的基礎而不熟悉GUI編程,學習本書可能會遇到一些挑戰,但在你的努力之下,佛擋殺佛,鬼阻殺鬼,浴火重生,觸手可及。
如果你既有面向對象語言基礎,又有GUI開發基礎,本書對于你來講僅僅是舉一反三、觸類旁通的過程,你會享受到征服新大陸的快感。
如果你有Qt基礎,那么學習本書將是非常愉快的旅程。
如果你想要進行Android開發,請先閱讀筆者的《Qt on Android核心編程》,有了它,你會發現本書涉及Android的主題和示例都會變得面目可親。
你需要什么軟硬件環境
筆者使用Windows 7作為開發環境,可供參考。
至于開發主機的硬件配置,筆者建議配置為:
雙核以上CPU。
4GB以上內存。
而為了驗證部分應用在移動設備上的效果,你還需要一部Android手機,系統版本在2.3以上。建議配置為:
Android系統4.0及以上。
內存1GB以上。
4GB以上閃存或加配SD卡。
為了連接電腦和手機進行安裝與調試,需要:
一根與手機匹配的數據線。
與手機匹配的ADB驅動。
術語表
作者在寫作本書的過程中,不可避免地引用了部分英文術語以及縮寫,為了不引起歧義,有必要把它們界定一下。
IDE:Integrated Development Environment,集成開發環境,如Qt Creator、Visual Studio等。
GUI:Graphical User Interface,指采用圖形方式顯示的計算機操作用戶界面。筆者在行文過程中有時使用其簡寫GUI,有時以圖形用戶界面指代,有時也用UI替代GUI。
Application Framework:你可以將它理解為一個擁有諸多應用開發所需的基本功能(如程序模型、網絡、XML、GUI組件等)的類庫,開發人員只要從其中擷取符合自己需求的模塊,就可以像搭積木一樣完成自己的應用。我在書中有時稱其為應用框架、應用開發框架,視上下文環境而定。
API:Application Programming Interface。系統或應用框架開放出來,給程序員使用的接口,就是API。它可以是C函數那樣的東西,也可以是C++類,還可以是信號……
Android:一種基于Linux的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。比較常用的中文對應詞是安卓和安致。本書多數時候直接使用Android一詞,有時使用安卓,有時還以Android指代開發它的公司和組織,視上下文而定。
SDK:Software Development Kit,軟件開發工具包。廣義上指輔助開發某一類軟件的相關文檔、源碼、范例和工具的集合,比如Qt SDK、Android SDK……
類(Class):眾多的具有相同屬性和操作的事物的抽象,冷冰冰的模板,不會哭也不會笑,它存在的唯一目的,就是為了讓開發者根據它創建對象。
對象定義:ECMAScript中沒有類的說法,只有對象定義,其實也是創建對象的模板,與類相近。本書很少用到它,一般使用“類”這個詞。
對象(Object):以某一個類為模板創建出來的具體化的事物,它有自己的屬性、方法,是有血有肉的活物,一顰一笑,一舉手一投足,各種風流韻味都是它自己的,正所謂龍生九子各個不同也。
實例化:從類創建對象的過程,叫作實例化。
實例:對象的同義詞。本書有時使用對象,有時使用實例,因上下文而變。
雞一嘴鴨一嘴
本書中多次提到Qt SDK路徑和源碼路徑,使用了C:xxx之類的字串,這都是基于作者的開發環境來講的,你電腦上的路徑,與你安裝Qt SDK時的配置有關。
書中示例代碼,有時因為排版的原因做了人為折行處理,導致部分代碼看起來不符合ECMAScript的語法,如果你照錄代碼進行試驗,請注意此點。
在非代碼的段落,有時為了排版的原因,某些類名、變量名、英文字詞可能會被插入空格。
示例代碼中的部分很長的語句(如字符串、URL等)無法簡單地折行,保持了自然本色,請你留意。
你看到的配圖,是黑白的或者帶點兒灰度,這是印刷的原因,如果你運行示例,看到的應該是彩色的。行文時筆者有時也會用到“藍色矩形”之類的字眼,而如果你看到的是灰不溜秋的一坨色塊,還請淡定,這都是月亮惹的禍。
聯系作者
我非常樂意和本書的所有讀者溝通,接受你對本書以及對我的指正和建議。
本書部分章節的初始版本曾經在我的技術博客上連載,歡迎訪問我的技術博客,留下你對書籍內容本身或某個技術專題本身的指正和建議。我的博客地址:http://blog.csdn.net/ foruok。
筆者目前擔任CSDN Qt論壇的版主,你可以到那里找筆者討論技術問題。你可以按下面的路線抵達那里:http://bbs.csdn.net→移動開發→Qt。
筆者經常在致謝中提到的兩個Qt技術群內出沒,你也可以在那里找到我。
筆者的電子郵箱是foruok@163.com,歡迎來信討論與書籍相關的問題,如果要求我為你解決技術問題,咱們得先坐下來掰扯掰扯怎么按時計費的問題。
內容簡介:

本書起始于基礎的開發環境搭建和Qt Creator快速介紹,幫助讀者正確使用開發環境;著力于QML語言基礎、事件、Qt Quick基本元素,輔以簡要的ECMAScript(JavaScript)語言介紹,使得讀者能夠快速熟悉Qt Quick的基本知識和開發過程;對于Qt Quick中的關鍵主題,如動畫、Model-View、Component、網絡、多媒體,做了詳盡入微的講解,讓讀者一冊在手,別無他求;QML與C++混合編程、Canvas、定制及自定義控件等高級主題,本書也做了詳細講解,同時提供了多個精彩的實作實例,力求概念清晰,用途明確。本書的內容適用于桌面與Android平臺。值得一提的是,本書覆蓋了Android開發的多個主題,如拍照、定位、錄音、國際化、可伸縮界面等,也是使用Qt Quick進行移動開發不可錯過的。

目錄:

第1章 Qt Quick概覽 1
1.1 什么是Qt Quick 1
1.2 我們能用Qt Quick做什么 2
第2章 Qt開發環境快速上手 3
2.1 Qt Creator簡介 3
2.2 Qt Creator下載與安裝 3
2.2.1 下載 3
2.2.2 安裝 4
2.3 Hello Qt Quick App 8
2.3.1 創建項目 8
2.3.2 運行項目 11
2.3.3 在手機上運行 12
2.4 Qt Creator集成開發環境 15
2.4.1 歡迎界面 15
2.4.2 編輯界面 18
2.4.3 調試界面 19
2.4.4 項目選項設置 20
2.5 善用佳軟之Qt Quick開發工具 21
2.5.1 Qt幫助 21
2.5.2 Qt Quick Designer 24
2.5.3 命令行環境 25
2.5.4 qmlscene 26
第3章 QML語言基礎 28
3.1 對象 28
3.2 表達式 29
3.3 注釋 30
3.4 屬性 31
3.4.1 屬性命名 31
3.4.2 屬性的類型 31
第4章 Qt Quick入門 35
4.1 Hello Qt Quick App再分析 35
4.1.1 基本程序結構 35
4.1.2 使用Item作為QML根對象 37
4.2 閑話Window 38
4.2.1 Window細說 38
4.2.2 ApplicationWindow 40
4.3 基本元素初體驗 40
4.3.1 Rectangle 40
4.3.2 顏色 41
4.3.3 漸變色 41
4.3.4 Item 42
4.3.5 使用錨布局 44
4.3.6 響應按鍵 46
4.3.7 Text 47
4.3.8 Button 50
4.3.9 ButtonStyle 51
4.3.10 Image 52
4.3.11 BusyIndicator 55
4.4 圖片瀏覽器的第一個版本 55
4.4.1 QML代碼 56
4.4.2 FileDialog 58
第5章 ECMAScript初探 59
5.1 語法 60
5.1.1 區分大小寫 60
5.1.2 弱類型 60
5.1.3 語句后的分號可有可無 61
5.1.4 注釋 61
5.1.5 代碼塊 61
5.2 變量 61
5.2.1 變量聲明 61
5.2.2 變量命名規則 62
5.2.3 關鍵字 62
5.2.4 保留字 63
5.2.5 原始值與引用值 64
5.3 原始類型 64
5.3.1 typeof運算符 64
5.3.2 Undefined類型 65
5.3.3 Null類型 65
5.3.4 Boolean類型 66
5.3.5 Number類型 66
5.3.6 String類型 67
5.4 類型轉換 67
5.4.1 轉換成字符串 68
5.4.2 轉換成數字 68
5.4.3 強制類型轉換 69
5.5 對象 70
5.5.1 Object 70
5.5.2 String 72
5.5.3 RegExp 75
5.5.4 Array 78
5.5.5 Math 80
5.5.6 Date 81
5.5.7 你不可不知的對象碎碎念 83
5.6 函數 84
5.6.1 函數語法 84
5.6.2 函數的返回值 85
5.7 表達式和運算符 85
5.7.1 表達式 85
5.7.2 算術運算符 86
5.7.3 賦值運算符 86
5.7.4 比較和邏輯運算符 87
5.7.5 條件運算符 88
5.7.6 位運算符 88
5.7.7 關鍵字運算符 88
5.7.8 逗號運算符 89
5.7.9 數組和對象存取運算符 89
5.7.10 優先級 89
5.8 程序控制語句 90
5.8.1 if-else語句 90
5.8.2 switch語句 90
5.8.3 for語句 91
5.8.4 while語句 92
5.8.5 do-while語句 92
5.8.6 break、continue和return 92
5.9 使用console 93
5.9.1 輸出日志信息 93
5.9.2 斷言 94
5.9.3 計時器 94
5.10 內置對象 94
5.10.1 Global對象 94
5.10.2 JSON對象 96
5.11 來自QML的基本類型 98
5.11.1 url 99
5.11.2 list 99
5.11.3 enumeration 100
5.11.4 font 100
5.12 宿主對象Qt 101
5.12.1 Qt對象的屬性 101
5.12.2 Qt對象的枚舉類型 102
5.12.3 Qt對象的方法 102
第6章 Qt Quick事件處理 105
6.1 Qt Quick中的信號與槽 105
6.1.1 連接QML類型的已知信號 105
6.1.2 如何尋找感興趣的信號 109
6.1.3 定義自己的信號 115
6.1.4 信號與槽的連接 117
6.2 鼠標 119
6.2.1 變色矩形示例 119
6.2.2 MouseArea 120
6.3 鍵盤 121
6.3.1 會動的文本實例 121
6.3.2 Keys與信號處理器 123
6.4 定時器 124
6.4.1 定時器對象介紹 124
6.4.2 倒計時程序 124
6.5 觸摸事件 126
6.5.1 PinchArea 127
6.5.2 縮放與旋轉實例 128
6.5.3 多點觸摸 130
第7章 組件與動態對象 133
7.1 Component(組件) 133
7.1.1 嵌入式定義組件 133
7.1.2 在單獨文件中定義組件 134
7.2 使用Loader 137
7.2.1 Loader詳細介紹 137
7.2.2 從文件加載組件 142
7.2.3 利用Loader動態創建與銷毀組件 143
7.3 在ECMAScript中動態創建對象 146
7.3.1 從組件文件動態創建Component 146
7.3.2 從QML字符串動態創建Component 148
7.3.3 銷毀動態創建的對象 149
第8章 Qt Quick元素布局 152
8.1 定位器 152
8.1.1 Row 152
8.1.2 Colomun 154
8.1.3 Grid 155
8.1.4 Flow 158
8.1.5 定位器嵌套 160
8.2 布局管理器 162
8.2.1 GridLayout 163
8.2.2 RowLayout 166
8.2.3 ColumnLayout 168
8.3 其他的布局方式 169
第9章 Qt Quick常用元素介紹 170
9.1 行編輯(TextInput與TextField) 170
9.1.1 TextInput 170
9.1.2 TextField 172
9.2 文本塊(TextEdit與TextArea) 172
9.2.1 TextEdit 173
9.2.2 TextArea 173
9.3 ExclusiveGroup 174
9.4 RaidoButton 174
9.4.1 RadioButtonStyle 174
9.4.2 實例:選擇你喜歡的手機操作系統 175
9.5 CheckBox 177
9.5.1 CheckBoxStyle 178
9.5.2 實例:那些你喜歡的愛情電影 178
9.6 GroupBox 180
9.7 ComboBox 182
9.7.1 ComboBoxStyle 183
9.7.2 ComboBox綜合演示 183
9.8 ProgressBar 187
9.8.1 ProgressBarStyle 187
9.8.2 進度條綜合演示 188
9.9 TabView 191
9.9.1 標簽控件簡單示例 192
9.9.2 使用TabViewStyle 193
9.10 Slider 196
9.10.1 SliderStyle 197
9.10.2 滑塊簡單示例 197
9.11 Flickable 199
9.12 Screen對象 200
第10章 Canvas(畫布) 202
10.1 開始之前 202
10.1.1 畫布 202
10.1.2 畫師 203
10.1.3 畫筆 203
10.1.4 畫刷 203
10.1.5 坐標系 203
10.1.6 圖元 204
10.2 基本繪圖模式 204
10.3 繪制路徑 206
10.4 繪制文本 209
10.5 繪制圖片 211
10.6 變換 215
10.7 裁切 219
10.8 圖像合成 220
10.9 挖頭像實例 221
10.9.1 項目創建 221
10.9.2 C++代碼 222
10.9.3 QML代碼分析 223
第11章 C++與QML混合編程 228
11.1 在QML中使用C++類和對象 229
11.1.1 定義可以導出的C++類 229
11.1.2 注冊一個QML可用的類型 235
11.1.3 完整的ColorMaker實例 237
11.1.4 將一個C++對象導出為QML屬性 239
11.2 在C++中使用QML對象 242
11.2.1 查找一個對象的孩子 243
11.2.2 使用元對象調用QML對象的方法 243
11.2.3 callQml示例 244
11.3 美圖實例 248
11.3.1 美圖實例效果 248
11.3.2 圖像處理算法 250
11.3.3 源碼情景分析 256
第12章 動畫 264
12.1 動畫元素分類 264
12.2 基本動畫元素 265
12.2.1 Animation 265
12.2.2 PropertyAnimation 266
12.2.3 NumberAnimation 270
12.2.4 ColorAnimation 273
12.2.5 RotationAnimation 273
12.2.6 PathAnimation 275
12.2.7 SmoothedAnimation 278
12.2.8 SpringAnimation 279
12.3 組合動畫 280
12.3.1 ParallelAnimation 280
12.3.2 SequentialAnimation 281
12.4 State 283
12.4.1 使用State變換文本的小示例 283
12.4.2 State詳解 284
12.4.3 PropertyChanges 286
12.4.4 ParentChange 289
12.4.5 AnchorChanges 292
12.4.6 StateChangeScript 294
12.5 Transition 296
12.6 協同動畫元素 302
12.6.1 Behavior 303
12.6.2 ParentAnimation 304
12.6.3 AnchorAnimation 305
12.7 實例:射泡泡游戲 306
12.7.1 游戲介紹 307
12.7.2 源碼情景分析 310
第13章 Model/View 318
13.1 ListView 319
13.1.1 ListView的簡單使用 319
13.1.2 header 323
13.1.3 footer 326
13.1.4 訪問與修改Model 330
13.1.5 動畫效果 336
13.1.6 section 343
13.2 XmlListModel的用法 347
13.2.1 XPath簡介 347
13.2.2 XmlRole 349
13.2.3 XmlListModel的屬性與方法 349
13.3 使用C++ Model 354
13.3.1 C++實現QML可用的Model 354
13.3.2 將Model導出到QML中 359
13.3.3 QML代碼的變化 360
13.4 TableView 362
13.4.1 一個簡單的TableView實例 362
13.4.2 定制表格外觀 364
13.4.3 動態修改TableView 368
13.5 實例:股票跟蹤 368
13.5.1 你的樣子 369
13.5.2 項目創建 370
13.5.3 main.cpp分析 372
13.5.4 TableView外觀定制 373
13.5.5 QML與C++混合應用的國際化 375
13.5.6 Qt on Android應用國際化 376
13.6 GridView 377
13.7 PathView 379
13.7.1 Path簡介 380
13.7.2 PathAttribute 385
13.7.3 PathPercent 386
13.7.4 使用PathView 386
13.8 找圖看實例 390
13.8.1 功能與界面 390
13.8.2 QML多界面切換 392
13.8.3 創建自己的QML按鈕 394
13.8.4 本地瀏覽 395
13.8.5 網絡圖片搜索 399
13.9 Repeater 400
13.9.1 model為數字 400
13.9.2 model為字符串列表 401
13.9.3 model為對象列表 402
13.9.4 model為ListModel 403
13.10 ListView的下拉刷新效果 405
13.10.1 C++ Model 405
13.10.2 QML代碼分析 408
第14章 多媒體 410
14.1 MediaPlayer 410
14.1.1 播放音樂 410
14.1.2 視頻 413
14.1.3 多媒體元信息 414
14.2 拍照 415
14.2.1 配置Camera 415
14.2.2 設置取景器VideoOutput 418
14.2.3 捕獲靜態圖片 419
14.2.4 簡單的拍照實例 419
第15章 網絡 426
15.1 大珠小珠落玉盤——支持網絡的對象 426
15.1.1 Image 426
15.1.2 Qt.createComponent 426
15.1.3 Loader對象 427
15.1.4 QQmlApplicationEngine 427
15.1.5 QQuickView 427
15.1.6 MediaPlayer 428
15.2 QML里的HTTP 428
15.2.1 XMLHttpRequest類介紹 428
15.2.2 GET小示例 430
15.2.3 POST數據 433
15.3 使用C++代碼完成復雜的網絡操作 433
第16章 定位 435
16.1 類庫介紹 435
16.1.1 coordinate 435
16.1.2 QtPositioning 436
16.1.3 Position 436
16.1.4 PositionSource 436
16.2 團購查詢實例 437
16.2.1 百度API說明 437
16.2.2 手機運行效果 438
16.2.3 源碼分析 439
第17章 綜合實例之文件查看器 443
17.1 文件查看器的運行效果 444
17.2 再論ApplicationWindow 445
17.3 MenuBar 447
17.3.1 Menu 447
17.3.2 MenuItem 448
17.3.3 Action 448
17.4 ToolBar 449
17.5 使用XMLHttpRequest加載本地文件 450
17.6 使用標準對話框 450
17.6.1 ColorDialog 451
17.6.2 MessageDialog 452
17.7 源碼分析 453
17.7.1 QML代碼 453
17.7.2 C++代碼 461
17.7.3 項目文件 461
第18章 綜合實例之聊哈 462
18.1 界面效果 462
18.2 分析 465
18.2.1 適應多種分辨率 465
18.2.2 聊天界面實現分析 469
18.2.3 錄音與回放 471
18.2.4 聊天協議 475
18.2.5 MessengerManager 485
18.2.6 AccessPointModel 486
附錄A 常見問題 487
該怎么學習Qt Quick 487
如何發布Qt Quick應用 487
怎樣保持Android手機屏幕常亮 489
我想創建可擴展的UI來適應各種屏幕 489
Qt Quick應用如何國際化 490
Qt Quick應用體積太大了啊 490
有沒有靜態庫版本的Qt 490
我不想讓別人看見我的QML文檔 490
Android上的Qt Quick控件看起來和系統風格不一樣 490
自己做一些Qt Quick控件怎么樣 491
Qt Quick不支持文件操作嗎 491
想用數據庫來著…… 491
說真的,本書示例代碼在哪兒可以下載 491
參考文獻 492
聊聊寫作期間聽的音樂 493
序: