發表於2024-11-27
*貫穿始終用帶Webkit的Qt生成健壯的、多彩的桌麵/Internet應用
*介紹瞭使用模型/視圖錶和樹模型、委托和視圖工作中涉及的各種先進技術
*介紹瞭Qt強大的動畫和狀態機框架
本書是一本闡述Qt高級編程技術的書籍。本書以工程實踐為主旨,是對Qt現有的700多個類和上百萬字參考文檔中部分關鍵技術深入、全麵的講解和探討,如豐富的網絡/桌麵應用程序、多綫程、富文本處理、圖形/視圖架構、模型/視圖架構等;另外,除對每章主題內容的探討外,還給齣瞭許多與之相關的類、方法和技術細節,從而盡可能多地展示瞭Qt的各種特色。因此,即使是很有經驗的Qt程序開發人員,也可以從書中找齣自己不曾注意到的技術點。書中的全部示例程序都已用Qt 4.6或者Qt 4.5在Windows、Mac OS X和Linux係統上進行瞭測試。
Mark Summerfield:Qtrac公司的創始人,獨立的培訓講師、顧問、技術編輯,Go、Python、C++、Qt和PyQt方麵的技術作傢。Summerfield於1993年畢業於英國的威爾士斯旺西大學計算機專業。在加入Trolltech(奇趣科技)之前的幾年時間,他在很多公司擔任軟件工程師的工作。最近幾年,他成為瞭Trolltech的文檔管理員,負責維護1500多頁的Qt在綫文檔,創立瞭並負責編輯Trolltech的技術雜誌Qt Quarterly。
閆鋒欣,西北農林科技大學教師,主要從事機械工程設計及自動控製研究,熟練掌握C/C++語言。齣版過多本譯著!
第1章 混閤桌麵/Internet應用程序
1.1 Internet相關窗口部件
1.2 WebKit的使用
第2章 聲音和視頻
2.1 QSound和QMovie的使用
2.2 Phonon多媒體框架
第3章 模型/視圖錶格模型
3.1 Qt的模型/視圖架構
3.2 用於錶格的QStandardItemModel
3.3 創建自定義錶格模型
第4章 模型/視圖樹模型
4.1 用於樹QStandardItemModel的用法
4.2 創建自定義樹模型
第5章 模型/視圖委托
5.1 與數據類型相關的編輯器
5.2 與數據類型相關的委托
5.3 與模型相關的委托
第6章 模型/視圖中的視圖
6.1 QAbstractItemView子類
6.2 與模型相關的可視化視圖
第7章 用QtConcurrent實現綫程處理
7.1 在綫程中執行函數
7.2 綫程中的過濾和映射
第8章 用QThread實現綫程處理
8.1 獨立項的處理
8.2 共享項的處理
第9章 創建富文本編輯器
9.1 QTextDocument簡介
9.2 創建自定義的文本編輯器
9.3 一個單行的富文本編輯器
9.4 編輯多行的富文本
第10章 創建富文本文檔
10.1 高質量地輸齣QTextDocument文件
10.2 創建QTextDocument
10.3 輸齣和打印文檔
10.4 繪製頁麵
第11章 創建圖形/視圖窗口
11.1 圖形/視圖架構
11.2 圖形/視圖窗口部件和布局
11.3 圖形項簡介
第12章 創建圖形/視圖場景
12.1 場景、項和動作
12.2 增強QGraphicsView的功能
12.3 創建可停靠的工具箱窗口部件
12.4 創建自定義圖形項
第13章 動畫和狀態機框架
13.1 動畫框架簡介
13.2 狀態機框架簡介
13.3 動畫和狀態機的結閤
結束語
精選書目
前言
一段時間以來,我一直想寫一本Qt書籍,一本能夠涵蓋《C++ GUI Qt 4編程》一書中過於高深內容的書籍,盡管對一些讀者來說,該書本身已經夠有挑戰性瞭。還有一些我打算涉及的專題材料(並非是比較難的,而是它們並沒能包含進第一本關於Qt編程的書中)也想一並總結。此外,從Qt龐大的規模上來看,也沒有哪一本書能夠對Qt所有的內容進行毫無偏頗的描述。毫無疑問,這為新技術文稿的撰寫留下瞭空間。
這本書所做的就是從許多模塊和各個方麵的類中選擇瞭一些內容,並展示該如何使用它們。這些所選擇的主題都是我自己感興趣的,同時好像也正是它們在Qt愛好者郵件群qt�瞚nterest中引起瞭許多討論。這些主題中的一些還沒有在任何其他書籍中涉及過,而另外一些主題則較為熟悉,比如模型/視圖編程。無論如何,我將盡量提供比其他可藉鑒材料更為全麵的內容。
因此,這本書的目的就是幫助Qt編程人員加深和拓寬他們的知識,提高他們使用Qt成就事業的能力。“高級”方麵通常更多地是指能做到什麼,而不是實現方法的手段。這是因為,正如常說的那樣,Qt讓我們盡可能遠離不相關的細節和潛在的復雜事物,提供易於使用的應用程序接口(API),從而隻需簡單、直接地使用就可以獲得極好的效果。例如,我們將會看到:在不知道任何播放器工作原理的情況下,創建一個音樂播放器的過程;而所需要瞭解的僅僅是Qt所提供的那些高級API。另一方麵,即使對於高級QtConcurrent模塊的用法,它所涵蓋的對多綫程的必要知識也都很有挑戰性。
這本書假設讀者都具有基本的C++編程能力,並且至少知道該如何來創建基本的Qt應用程序——例如,已經讀過一部好的Qt 4書籍,並有一定的工程實踐經驗。本書還認為,讀者應該熟悉Qt的參考文檔,至少能夠使用它查詢到感興趣的類的API。此外,一些章節會假設讀者已經知道相關主題的基本知識——例如,第1章會假設讀者已經知道一些JavaScript和Web編程的知識,在多綫程的那些章節裏,作者會假設讀者能夠理解綫程的基本知識和Qt的綫程類。所有這些假設都意味著,這本書將能夠免於介紹那些Qt程序開發人員已經熟知的許多細節和類,比如布局的使用、動作的創建、信號和槽的連接等,從而可以讓本書完全專注於那些讀者不是很熟悉的知識。
當然,沒有哪部單捲本書籍就可以真正毫無偏頗地描述那700多個Qt公共類——在Qt 4.6中, 幾乎有800個, 以及100多萬字的Qt文檔,所以本書也不會試圖去那樣做。相反,這本書為如何使用Qt最具強大功能的那些特徵提供瞭一些說明和示例,用來補充參考文檔而不是對它的重復。
本書在章節設計上,已盡可能做到內容完整,因而也就沒有必要按照章節順序自始至終地進行閱讀。為瞭實現這一點,對於不同章節中要用到的那些特定技術,僅會在一個地方進行說明,而在其他地方則會使用交叉引用的方式給齣。即使如此,如果你打算隨機閱讀一些零星章節,建議至少先對整本書做一個粗略的瀏覽,因為一些章節會專注於某個特定主題,而它又是其他主題必不可少的材料。同樣,我將盡可能多地介紹那些完全來自Qt API的小細節,以使本書的內容更為豐富,並在上下文中盡可能多地介紹那些特性,因而通篇會齣現一些有用的信息。
與我之前那些書一樣,本書中引用的代碼段都是些“活代碼”,也就是說,這些代碼都是直接從例子的源文件中自動抽取並直接嵌入到發送給齣版商的PDF文件中的——因而就不會有剪切、粘貼方麵的錯誤,而且可保證代碼能夠正常工作。這些例子可以從www.qtrac.eu/aqpbook.html獲得,基於GPL(GNU General Public License,GNU通用公共授權第3版)進行授權。本書將給齣多達25個例子,分布在150多個.hpp和.cpp文件中,纍計超過20 000行代碼。盡管全部最為重要的代碼段都在書中進行瞭引用和解釋,但還有大量的細節無法在本書內進行闡釋,因此,建議下載這些示例並至少閱讀一下那些特彆感興趣的例子的源代碼。除瞭這些例子,本書還提供瞭一些包含常用功能的模塊。所有這些都用AQP命名空間來確保其重用性,開頭的一些章節會將它們引進來,然後在整本書中一直使用。
所有例子(除瞭最後一章中用到瞭Qt 4.6特性的那些例子)都用Qt 4.5和Qt 4.6在Linux、Mac OS X和Windows平颱上進行瞭測試。使用Qt 4.5建立的那些應用程序將可以在Qt 4.6下不做修改而直接運行,對後續的其他Qt 4.x版本也可以運行,因為Qt在各個次要發行版中維持嚮後兼容。然而,對於這兩個Qt版本之間的那些不同之處,本書會說明和解釋與Qt 4.6相關的方法,而源代碼部分會使用#if QT_VERSION,以便可以用特定的版本或者最好的習慣來編譯代碼。一些例子或許可用於先前的Qt 4.x版本,特彆是Qt 4.4,且一些例子或許可以嚮後移植(backport)到更早的Qt版本——然而,這本書僅僅完全關注於Qt 4.5和Qt 4.6,所以不會明確涉及嚮後移植的問題。
本書給齣瞭最好的Qt 4.6實踐,盡管Qt 4.6比Qt 4.5包含更多的新特徵,但對代碼來說卻並沒有太多不同。一個細微差彆之處在於:Qt 4.6有“退齣”(quit)動作的快捷方式而Qt 4.5沒有;源代碼中,對於Qt 4.6會使用其快捷方式,而對於Qt 4.5,則會用#if QT_VERSION錶示與之功能相當的代碼。更為重要的不同之處在於,Qt 4.6引入瞭QGraphicsObject類,而且還在它與幾何形狀變化通信時改變瞭那些圖形項(graphics item)的行為。我們會在某些地方說明這些不同之處,並在書中的代碼段中給齣Qt 4.6的方法,但是在源代碼中,用#if QT_VERSION來說明如何用Qt 4.6和Qt 4.5及其早期版本來完成同樣的事情,並為兩者選擇最好的方法。在本書的最後一章,作為之前給齣例子的轉換,用三個例子中的兩個來說明與Qt 4.6相關的那些特性,以及對Qt 4.6動畫和狀態機框架的應用。通過修改之前的例子,就更容易看齣如何從傳統的Qt方法過渡到新的框架下。
Qt的下一個版本,Qt 4.7將重點關注穩定性、速度以及除Qt Quick之外的新技術(可提供一種使用類JavaScript語言創建GUI聲明的方法),我們希望引入比之前發行版更少的新特性。盡管現在仍然有巨大的精力投入到Qt中,其範圍也在不斷擴大,但本書應當作為學習和使用Qt 4.x係列方麵重要技術的一個有用資源,特彆是對Qt 4.5、Qt 4.6和若乾年後就要來臨的那些後續版本來說。
緻謝
我第一個要感謝的是我的朋友Trenton Schulz,Nokia公司Qt開發框架組(Qt Development Frameworks,之前的Trolltech公司)中的一名前軟件工程師,他目前是挪威計算中心(Norwegian Computing Center)的一名研究員。事實證明,Trenton是一名可靠的、富有遠見和挑戰性的審稿人,他閱讀仔細、標準嚴格,提齣的一些建議對改進本書相當有幫助。
接下來要感謝的是另外一位朋友Jasmin Blanchette,他以前也是Qt開發框架中的一名軟件工程師,與我一起閤著瞭《C++ GUI Qt 4編程》(C++ GUI Programming with Qt 4)第二版中文翻譯版已由電子工業齣版社齣版。——譯者注。一書,目前正在慕尼黑工業大學攻讀博士學位。我們兩個在前一段時間就對本書就形成瞭一緻意見,而僅僅是因為工作的壓力讓他成為瞭一名齣色的而且苛刻的審稿人,而不是閤著者。
我還要感謝很多那些工作(或任職)於Qt開發框架的人,他們閱讀瞭本書的部分內容並提供瞭有益的反饋信息,還要感謝那些迴答瞭技術問題的人,以及同時做瞭以上兩件事的人。這些人包括:Andreas Aardal Hanssen(對圖形/視圖那幾章給齣瞭特彆優秀的反饋和建議,並為我列齣瞭離屏渲染方麵的補充材料)、Andy Shaw、Bj�塺n Erik Nilsen、David Boddie、Henrik Hartz、Kavindra Devi Palaraja、Rainer Schmid(目前在Froglogic)、Simon Hausmann、Thierry Bastian和Volker Hilsheimer。
意大利軟件公司(www.develer.com)是一傢很好的一個軟件公司,為我提供瞭免費主機,讓我能夠在漫長的寫作過程中安心完成本書。他們的一些開發人員給瞭我有用的反饋,特彆是早期章節中的一些例子。我特彆感謝Gianni Valdambrini、Giovanni Bajo、Lorenzo Mancini(為我創建瞭資料庫)和Tommaso Massimi。
特彆感謝初稿讀者Alexey Smirnov,他指齣瞭一些錯誤,並鼓勵我在一些網絡示例中加入對網絡代理的支持。
我還要感謝Froglogic的創始人,Reginald Stadlbauer和Harri Porten——他們提供給我的兼職顧問的工作, 這使我寫作本書的時間更加寬裕,同時也嚮我介紹瞭一些編程技術,這些技術對我來說都是一些全新的想法。他們還把我變成瞭他們的GUI應用程序測試工具——Squish的超級愛好者。
我的朋友Ben Thompson也應得到許多感謝,他幫我迴憶起一些已經忘卻的、可靠的數學概念,並且尤其要感謝他的耐心,一遍遍地嚮我解釋這些數學概念直到我能夠理解為止。
若沒有Qt,本書(以及其他一些書)就不會成為現實。因此,我非常感謝Qt的創始人Eirik Chambe�睧ng和Haavard Nord,尤其要感謝Eirik,他允許我在Trolltech的時候,把撰寫我的第一本書作為日常工作,並且他還花費時間和精力來為這本書寫瞭序言。
要特彆感謝我的編輯Debra Williams Cauley,相當獨
Qt高級編程 下載 mobi pdf epub txt 電子書 格式 2024
Qt高級編程 下載 mobi epub pdf 電子書紙的質量很好,無異味。
評分正版書,很好
評分66666666666666666666666
評分Qt的書不多,看看再說
評分京東商城自營的就是塊,物流配送也保護的很好,是正品。
評分正版書,很好
評分店傢很nice,還送一支筆,包裝很嚴實。不錯的
評分不錯,擴展知識比較全麵
評分京東商城自營的就是塊,物流配送也保護的很好,是正品。
Qt高級編程 mobi epub pdf txt 電子書 格式下載 2024