*貫穿始終用帶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高級編程》這本書,感覺自己像是進入瞭一個全新的世界。我之前接觸Qt主要是在做一些UI界麵開發,停留在比較錶層的API調用上,對於Qt背後的設計哲學和一些高級特性瞭解不多。這本書的齣現,恰好彌補瞭我這方麵的空白。我特彆關注書中關於Qt的並發編程和多綫程模型的部分,因為現在很多應用都需要處理大量的異步任務,如何高效地利用多綫程來提升用戶體驗和係統響應速度,是我一直在探索的方嚮。書中是否有關於Qt的綫程池管理、同步機製的深入講解?是否會提供一些實用的多綫程設計模式和優化建議?這些都是我非常期待的內容。另外,書中對Qt的圖形視圖框架(Graphics View Framework)的深入解讀也讓我十分好奇。雖然我之前用過一些基本的圖形繪製功能,但對於如何構建復雜的、可交互的圖形場景,以及如何優化大規模圖形的渲染性能,我感到有些力不從心。希望這本書能帶領我深入理解Graphics View Framework的強大之處,並教我如何運用它來創建更具吸引力和功能性的圖形化應用程序。
評分我是一名對Qt的深度原理有著強烈好奇心的程序員。《Qt高級編程》這本書的齣現,正好滿足瞭我想要深入理解Qt內部工作機製的願望。我一直在思考,Qt是如何實現如此跨平颱的能力的?它的抽象層究竟是如何工作的?這本書是否會揭示Qt的抽象層設計,以及它如何屏蔽不同操作係統和硬件的差異?我特彆希望書中能夠詳細介紹Qt的模塊化設計,以及不同模塊之間的依賴關係和交互方式。我一直對Qt的信號與槽機製非常著迷,但對其底層的實現原理,比如元對象編譯器的作用,以及信號與槽是如何在運行時連接和觸發的,我 still 感到有些模糊。我期待這本書能夠深入剖析這些機製,讓我能夠從根本上理解Qt的事件驅動模型。此外,對於Qt的國際化(i18n)和本地化(l10n)支持,我也希望這本書能夠提供更高級的視角,不僅僅是簡單的字符串翻譯,而是如何構建一個支持多語言、多文化的復雜應用程序。
評分最近入手瞭《Qt高級編程》,翻閱瞭幾頁,已經感受到瞭它的深度和廣度。我一直對Qt的跨平颱能力以及其強大的功能集感到驚嘆,但隨著項目需求的日益復雜,我逐漸意識到,僅僅停留在API的錶麵調用已經不足以滿足需求。我特彆希望這本書能在我一直感到睏惑的領域提供清晰的指引。例如,關於Qt的自定義控件開發,我希望能學習到如何從零開始構建一個高性能、可復用的自定義控件,理解其生命周期和事件處理機製。再者,對於Qt的動畫和效果,我希望這本書能提供一些更高級的實現方法,比如如何利用Qt的動畫框架來創建流暢、復雜的動畫效果,或者如何通過QML來構建令人驚嘆的用戶界麵。此外,對於Qt在數據庫訪問方麵的進階應用,比如如何優化SQL查詢,如何處理大型數據集,或者如何實現自定義的數據庫驅動,我也是充滿瞭期待。總之,這本書的齣現,讓我看到瞭提升Qt開發技能,應對更具挑戰性項目的希望。
評分這本書簡直是為我量身定做的!作為一名已經在Qt領域摸爬滾打瞭幾年,但總感覺在某些深入的、底層的機製上理解不夠透徹的開發者來說,《Qt高級編程》就像一座知識的金礦。我一直渴望能夠真正理解Qt的事件循環是如何工作的,信號與槽的底層實現機製究竟是什麼樣的,以及Qt的內存管理模型是如何在性能和便捷性之間取得平衡的。這本書的標題就直接點燃瞭我內心的火花。我期待能夠在這本書中找到對這些關鍵問題的詳盡解答,並能學習到如何利用這些深層次的知識來優化我的應用程序,解決那些難以捉摸的性能瓶頸和內存泄漏問題。同時,我也對書中關於Qt元對象係統(Meta-Object System)的深入剖析充滿瞭期待,因為我深知理解這個係統是掌握Qt強大功能的基礎。我希望這本書能夠提供一些實用的技巧和最佳實踐,幫助我寫齣更健壯、更高效、更具可維護性的Qt代碼。對於書中可能涉及的Qt插件開發、自定義控件的實現原理,甚至是Qt的國際化和本地化的高級策略,我同樣抱有濃厚的興趣。總之,這本書的齣現,讓我看到瞭在Qt技術棧上更上一層樓的希望。
評分作為一名正在努力提升自己技術棧的開發者,我一直都在尋找能夠幫助我突破技術瓶頸的書籍。《Qt高級編程》這個書名,立刻就吸引瞭我的目光。我目前的開發工作主要集中在嵌入式Linux平颱上,使用Qt進行開發,但很多時候都會遇到一些與底層硬件交互、與操作係統進行深度集成的問題。我非常期待這本書能夠提供一些關於Qt與Linux係統底層交互的實用技巧,比如如何編寫自定義的Linux設備驅動,或者如何利用Qt的IPC(進程間通信)機製來與係統服務進行高效通信。我還對書中關於Qt的性能調優和內存分析的部分充滿瞭期待。在嵌入式開發中,資源是極其寶貴的,如何最小化內存占用,如何最大化CPU利用率,是決定項目成敗的關鍵。我希望這本書能夠提供一些行之有效的性能分析工具和調優方法,幫助我寫齣在資源受限環境下也能流暢運行的Qt應用程序。同時,書中如果能涉及一些Qt在網絡通信方麵的進階內容,比如高性能的網絡服務器、客戶端的設計,或者Qt的QML與C++混閤開發的優化策略,那更是錦上添花瞭。
評分純淨水 4.5L*4 4.5L*4 整箱裝
評分此用戶未填寫評價內容
評分正版書,很好
評分Qt的書不多,看看再說
評分66666666666666666666666
評分純淨水 4.5L*4 4.5L*4 整箱裝
評分不錯,擴展知識比較全麵
評分不錯,擴展知識比較全麵
評分Qt的書不多,看看再說
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有