出版時(shí)間:2012-7 出版社:電子工業(yè)出版社 作者:張波 頁(yè)數(shù):285 字?jǐn)?shù):444000
Tag標(biāo)簽:無(wú)
內(nèi)容概要
《Qt中的C++技術(shù)》剖析了開源開發(fā)框架Qt中的C++技術(shù),給讀者提供一個(gè)優(yōu)秀的案例,以學(xué)習(xí)C++語(yǔ)言以及面向?qū)ο笤O(shè)計(jì)技術(shù)。該書討論了以下內(nèi)容:類模板特化技術(shù);分析比較了C++標(biāo)準(zhǔn)庫(kù)、Qt對(duì)字符串、數(shù)據(jù)輸入/輸出的處理思路;隱式共享與d-pointer技術(shù);函子及其在QTL(Qt
Template
Library)中的應(yīng)用,QTL是如何使用模板特化技術(shù)優(yōu)化QList性能的;如何在C++程序中嵌入?yún)R編代碼,實(shí)現(xiàn)一個(gè)原子操作,以很小的開銷實(shí)現(xiàn)線程間通信;信號(hào)與槽機(jī)制;Graphics/View框架等。
軟件學(xué)院或者計(jì)算機(jī)學(xué)院的學(xué)生,可將《Qt中的C++技術(shù)》作為課程“C++程序設(shè)計(jì)”或者“面向?qū)ο筌浖O(shè)計(jì)”的參考書;上述課程的教師,可將《Qt中的C++技術(shù)》的內(nèi)容融入他們的主講或者試驗(yàn)環(huán)節(jié),作為相關(guān)實(shí)訓(xùn)課程的教材;軟件行業(yè)的開發(fā)者,可將《Qt中的C++技術(shù)》作為深入學(xué)習(xí)C++設(shè)計(jì)與編程技術(shù)的案例教材。
書籍目錄
第1章 案例的選擇與評(píng)估
1.1 案例的初步選擇
1.2 案例的定量評(píng)估
1.3 其他案例
1.4 基本約定
1.5 關(guān)于類圖的約定
第2章 qt概述
2.1 qt版權(quán)
2.2 qt庫(kù)的編譯
2.3 開發(fā)環(huán)境的設(shè)置
2.4 主控臺(tái)的輸入與輸出
2.5 qt風(fēng)格的編程規(guī)范
2.6 與qt及c++相關(guān)的文獻(xiàn)資源
第3章 類模板特化
3.1 類模板特化
3.2 traits技術(shù)
3.3 類型分類(type classification)技術(shù)
3.4 降低代碼膨脹
第4章 標(biāo)準(zhǔn)庫(kù)及qt對(duì)字符串的處理
.4.1 字符及其編碼
4.2 標(biāo)準(zhǔn)庫(kù)的類模板basic_string
4.3 qt的類qstring
第5章 國(guó)際化與區(qū)域文化
5.1 區(qū)域文化
5.2 facet
5.3 類locale的實(shí)現(xiàn)
5.4 類模板facet的實(shí)現(xiàn)
5.5 派生新的facet類
第6章 c++的iostream
6.1 c語(yǔ)言的scanf/printf函數(shù)組
6.2 iostream的總體結(jié)構(gòu)
6.3 字符特征的描述
6.4 模板特化后的總體結(jié)構(gòu)
6.5 文件流
6.6 字符串流
6.7 流緩沖區(qū)
6.8 二進(jìn)制文件的處理
6.9 用戶自定義類型的輸入和輸出
第7章 qt的流
7.1 文件系統(tǒng)及底層文件操作
7.2 類qtextstream
7.3 類qdatastream
7.4 類qlocale
7.5 iostream和qt流類的比較
第8章 隱式共享與d-pointer技術(shù)
8.1 隱式共享
8.2 d-pointer在隱式共享中的應(yīng)用
8.3 二進(jìn)制代碼兼容
8.4 d-pointer模式的實(shí)現(xiàn)
8.5 qobject中的d-pointer
第9章 qt容器與迭代器
9.1 qtl概述
9.2 qtl容器和qdatastream的無(wú)縫連接
9.3 類型分類技術(shù)在qlist中的應(yīng)用
9.4 函子的應(yīng)用——相關(guān)詞詞典
第10章 多線程與可重入
10.1 創(chuàng)建一個(gè)線程
10.2 線程間同步
10.3 線程安全與可重入
10.4 多線程環(huán)境下的singleton模式
第11章 信號(hào)與槽(signals and slots)
11.1 對(duì)象樹(qobject tree)
11.2 信號(hào)與槽機(jī)制
11.3 信號(hào)與槽的應(yīng)用例子
第12章 graphics/view框架
12.1 qt圖形系統(tǒng)介紹
12.2 graphics/view框架
12.3 例子——相撞的老鼠
第13章 model/view框架
13.1 model/view框架總體架構(gòu)
13.2 模型(models)
13.3 視圖(views)
13.4 選擇操作
13.5 委托(delegates)
13.6 代理模型(proxy models)
13.7 便利視圖類
第14章 qt中的命令模式
14.1 qt的undo framework
14.2 使用undo framework的一個(gè)例子
第15章 qt中的抽象工廠模式
15.1 抽象工廠模式簡(jiǎn)介
15.2 qtextcodec及其子類的定義
15.3 界面風(fēng)格
第16章 qt中的觀察者模式
16.1 事件處理機(jī)制
16.2 事件濾波器
16.3 一個(gè)簡(jiǎn)單的例子——圖像瀏覽器
16.4 一個(gè)有趣的例子——鼠標(biāo)手勢(shì)
第17章 qt的元對(duì)象系統(tǒng)
17.1 c++ rtti (run-time type information)
17.2 qt的元對(duì)象系統(tǒng)
第18章 智能指針
18.1 qpointer
18.2 qshareddatapointer
參考文獻(xiàn)
索引
代碼目錄
第1章 案例的選擇與評(píng)估
第2章 qt概述
代碼段2 1,使用qt進(jìn)行主控臺(tái)輸入與輸出,取自z:\examples\qt_console\main.cpp
第3章 類模板特化
代碼段3 1,類模板stack,引自z:\examples\template_specialization
代碼段3 2,完全特化的類模板stack,引自examples\template_specialization
代碼段3 3,部分特化的類模板stack,引自examples\template_specialization
代碼段3
4,使用traits技術(shù)封裝float及double類型的特征,取自z:\examples\float_traits\main.cpp
代碼段3 5,類型分類技術(shù),取自z:\examples\type_classification\main.cpp
代碼段3 6,應(yīng)用類模板特化降低代碼膨脹,摘自examples\reduce_code_bloat
代碼段3 7,應(yīng)用類模板特化降低代碼膨脹,摘自z:\examples\reduce_code_bloat
第4章 標(biāo)準(zhǔn)庫(kù)及qt對(duì)字符串的處理
代碼段4 1,類模板basic_string的構(gòu)造函數(shù)
代碼段4
2,類模板basic_string常用構(gòu)造函數(shù)的使用,取自z:\examples\basic_string_demo\main.cpp
代碼段4 3,basic_string對(duì)象和字符串的比較
代碼段4 4,字符串的不同存放方式,摘自z:\examples\qstring_demo\main.cpp
代碼段4 5,qstring的字符編碼轉(zhuǎn)換功能,摘自z:\examples\qstring_merit\main.cpp
第5章 國(guó)際化與區(qū)域文化
代碼段5
1,類模板time_get的使用方法,取自z:\examples\locale_time_get\main.cpp
代碼段5 2,類模板time_put的成員函數(shù)put的用法,取自z:\examples\locale_time_
put\main.cpp
代碼段5 3,類模板codecvt的成員函數(shù)in的功能,取自z:\examples\locale_codecvt\
main.cpp
代碼段5 4,類locale以及facet的實(shí)現(xiàn)框架,取自vs 2010安裝目錄crt\src\xlocale
代碼段5 5,類locale::id的作用
代碼段5 6,創(chuàng)建新的facet子類,取自z:\examples\locale_unit\main.cpp
第6章 c++的iostream
代碼段6
1,應(yīng)用類模板char_traits實(shí)現(xiàn)大小寫不敏感的字符串類ci_string,取自z:\examples\ci_string\ci_string\main.cpp
代碼段6 2,對(duì)文件流進(jìn)行讀取以及寫入操作,取自z:\examples\
fstream_demo\main.cpp
代碼段6 3,具有多種格式設(shè)置的流,取自z:\examples\share_streambuf
代碼段6 4,流緩沖區(qū)的復(fù)制,z:\examples\copy_streambuf\main.cpp
代碼段6 5,二進(jìn)制文件的讀取,摘自z:\examples\process_binary\main.cpp
代碼段6 6,直接操作二進(jìn)制文件對(duì)應(yīng)的流緩沖區(qū),摘自z:\examples\
process_binary\main.cpp
代碼段6 7,用戶自定義類型的輸入和輸出,摘自z:\examples\
overloaded_io\main.cpp
第7章 qt的流
代碼段7
1,使用qfileinfo以及qdir獲取各驅(qū)動(dòng)器下的子目錄名,取自z:\examples\qdir_demo\main.cpp
代碼段7 2,使用qfile操作一個(gè)文件,取自z:\examples\qfile_read\main.cpp
代碼段7 3,使用qtextcodec轉(zhuǎn)換編碼方案,摘自z:\examples\
qtextstream_demo\main.cpp
代碼段7 4,使用qdatastream輸出二進(jìn)制數(shù)據(jù),摘自z:\examples\
qdatastream_usage\main.cpp
代碼段7 5,使用qdatastream讀取二進(jìn)制數(shù)據(jù),摘自z:\examples\
qdatastream_usage\main.cpp
代碼段7
6,重載運(yùn)算符以使qdatastream支持新的數(shù)據(jù)類型,取自z:\examples\qdatastream_demo\main.cpp
代碼段7 7,qlocale的使用,摘自z:\examples\qlocale_set\main.cpp
第8章 隱式共享與d-pointer技術(shù)
代碼段8 1,采用隱式共享技術(shù)的qstring::tocasefolded( ),取自src\
corelib\tools\qstring.cpp
代碼段8 2,qstring的復(fù)制構(gòu)造函數(shù),摘自src\corelib\tools\qstring.h
代碼段8 3,類matrix的傳統(tǒng)定義方式,摘自z:\examples\d_pointer\matrix\main.cpp
代碼段8
4,應(yīng)用d-pointer模式的類matrix,摘自z:\examples\d_pointer\matrix_with_d_pointer\main.cpp
代碼段8 5,qt 4.5版本中類qlocale的定義,摘自s:\corelib\tools\qlocale.h
代碼段8 6,qt 4.5版本中類qlocaleprivate的定義,摘自
s:\corelib\tools\qlocale_p.h
代碼段8 7,修改成員函數(shù)tostring()加入qt庫(kù)的版本信息,摘自
s:\corelib\tools\qlocale.cpp
代碼段8 8,使用類qlocale的qt應(yīng)用程序,摘自z:\examples\d_
pointer\test_qlocale\main.cpp
代碼段8 9,實(shí)現(xiàn)d-pointer模式的一個(gè)例子
代碼段8 10,qt中與d-pointer模式相關(guān)的宏,摘自src\corelib\global\qglobal.h
代碼段8 11,宏q_declare_private展開后的結(jié)果
代碼段8 12,qobject及qobjectdata的定義,摘自s:\corelib\kernel\qobject.h
代碼段8 13,類qobject及qobjectprivate對(duì)d-pointer的使用
代碼段8 14,qwidget繼承了qobject的d-pointer模式
第9章 qt容器與迭代器
代碼段9 1,stl風(fēng)格以及java風(fēng)格的迭代器,摘自z:\examples\
qlist_change_value\main.cpp
代碼段9 2,foreach的使用格式,取自z:\examples\foreach_demo\main.cpp
代碼段9 3,類模板qless,摘自src\corelib\tools\qalgorithms.h
代碼段9 4,使用qdatastream保存/讀取qmap對(duì)象,摘自
z:\examples\english_pron\main.cpp
代碼段9
5,qlistdata的成員函數(shù)remove(),摘自src\corelib\tools\qlistdata.cpp
代碼段9 6,qtypeinfo的定義,摘自src\corelib\global\qglobal.h
代碼段9 7,qlist的數(shù)據(jù)結(jié)構(gòu),摘自src\corelib\tools\qlist.h
代碼段9 8,向qlist中添加元素,摘自src\corelib\tools\qlist.h
代碼段9 9,使用qsort對(duì)容器排序,摘自z:\examples\qtl_related_words\main.cpp
代碼段9
10,函子indirectcompare,摘自z:\examples\qtl_thesaurus\main.cpp
第10章 多線程與可重入
代碼段10 1,在qt中創(chuàng)建多線程,摘自z:\examples\simple_thread\main.cpp
代碼段10 2,互斥體qmutex的使用,取自z:\examples\qmutex\main.cpp
代碼段10 3,使用互斥體的一個(gè)簡(jiǎn)單方法
代碼段10 4,用信號(hào)量來(lái)管理循環(huán)緩沖區(qū),摘自z:\examples\qsemaphore\main.cpp
代碼段10 5,使用條件量管理循環(huán)緩沖區(qū),摘自z:\examples\qwaitcondition\main.cpp
代碼段10 6,以傳統(tǒng)方式實(shí)現(xiàn)singleton模式
代碼段10 7,在堆中創(chuàng)建全局對(duì)象
代碼段10 8,簡(jiǎn)化的成員函數(shù)instance()
代碼段10 9,通過(guò)靜態(tài)局部對(duì)象來(lái)定義singleton對(duì)象
代碼段10 10,靜態(tài)局部對(duì)象的初始化
代碼段10 11,c++的判斷/賦值操作無(wú)法鎖定共享資源
代碼段10 12,qbasicatomicpointer
的定義,摘自s:\corelib\thread\qbasicatomic.h
代碼段10 13,qbasicatomicpointer
在windows/intel平臺(tái)上的實(shí)現(xiàn),摘自s:\corelib\arch\qatomic_windows.h
代碼段10 14,類模板qglobalstatic的定義,摘自s:\corelib\global\qglobal.h
代碼段10
15,類模板qglobalstaticdeleter的定義,摘自s:\corelib\global\qglobal.h
代碼段10 16,宏q_global_static的定義,摘自s:\corelib\global\qglobal.h
代碼段10 17,單線程環(huán)境下宏q_global_static的定義,取自
s:\corelib\global\qglobal.h
代碼段10 18,直接返回一個(gè)指向singleton對(duì)象的指針
代碼段10
19,使用一個(gè)已經(jīng)析構(gòu)的singleton對(duì)象,摘自z:\examples\use_destructed_singleton\main.cpp
第11章 信號(hào)與槽(signals and slots)
代碼段11 1,qobject對(duì)象的定義順序,摘自z:\examples\
qobject_destruction_order\main.cpp
代碼段11 2,信號(hào)與槽的定義,摘自z:\examples\signals_slots_
demo\signals_slots_declare.h
代碼段11 3,信號(hào)與槽的綁定,摘自z:\examples\signals_slots_demo\main.cpp
代碼段11 4,類finddialog的定義,摘自
z:\examples\find_dialog\find_dialog.h
代碼段11 5,類finddialog的構(gòu)造函數(shù),取自
z:\examples\find_dialog\find_dialog.cpp
代碼段11 6,類finddialog的構(gòu)造函數(shù)(續(xù)),摘自
z:\examples\find_dialog\find_dialog.cpp
代碼段11 7,類finddialog的槽函數(shù)及析構(gòu)函數(shù),摘自
z:\examples\find_dialog\find_dialog.cpp
第12章 graphics/view框架
代碼段12 1,類mouse的定義,取自z:\examples\collidingmice\mouse.h
代碼段12 2,類mouse的部分成員函數(shù),取自z:\examples\collidingmice\mouse.cpp
代碼段12 3,類mouse的成員函數(shù)advance(),取自
z:\examples\collidingmice\mouse.cpp
代碼段12 4,項(xiàng)目collidingmice的主函數(shù),取自
z:\examples\collidingmice\main.cpp
第13章 model/view框架
代碼段13
1,類treemodel的聲明,取自z:\examples\mvc\binary_tree\treemodel.h
代碼段13
2,類treemodel的實(shí)現(xiàn),取自z:\examples\mvc\binary_tree\treemodel.cpp
代碼段13 3,類treemodel的實(shí)現(xiàn)(續(xù)),取自
z:\examples\mvc\binary_tree\treemodel.cpp
代碼段13 4,滿二叉樹例子的主函數(shù),取自z:\examples\mvc\binary_tree\main.cpp
代碼段13 5,能夠處理更多角色的模型類,取自
z:\examples\mvc\binary_tree_more_role\treemodel.cpp
代碼段13 6,顯示自身發(fā)生變化的數(shù)據(jù)項(xiàng),取自
z:\examples\mvc\binary_tree_changing_data\treemodel.cpp
代碼段13 7,更改數(shù)據(jù)集的標(biāo)頭,取自z:\examples\mvc\
binary_tree_header\treemodel.cpp
代碼段13 8,編輯滿二叉樹的葉節(jié)點(diǎn),取自z:\examples\mvc\binary_
tree_editable\treemodel.cpp
代碼段13
9,重載qabstractlistmodel的虛函數(shù)以顯示、編輯一個(gè)列表,取自z:\examples\mvc\qabstractlistmodel_demo\listmodel.cpp
代碼段13
10,使用qstandarditemmodel處理列表,取自z:\examples\mvc\qstandarditemmodel_demo\main.cpp
代碼段13
11,使用qstandarditemmodel處理表格,取自z:\examples\mvc\qstandarditemmodel_demo\main.cpp
代碼段13
12,使用qstandarditemmodel處理樹,取自z:\examples\mvc\qstandarditemmodel_demo\main.cpp
代碼段13
13,類qstringlistmodel的使用,取自z:\examples\mvc\qstringlistmodel_demo\main.cpp
代碼段13
14,便利模型類qfilesystemmodel的用法,取自z:\examples\mvc\file_system\main.cpp
代碼段13
15,用qcolumnview對(duì)象顯示本地文件系統(tǒng),取自z:\examples\mvc\qcolumnview_demo\main.cpp
代碼段13
16,類mainwindow的聲明,取自z:\examples\mvc\selection_monitoring\mainwindow.h
代碼段13
17,類mainwindow實(shí)現(xiàn),取自z:\examples\mvc\selection_monitoring\mainwindow.cpp
代碼段13
18,同步兩個(gè)視圖對(duì)象中的選擇信息,取自z:\examples\mvc\sync_selection\main.cpp。
代碼段13 19,例子spinbox的主函數(shù),取自z:\examples\mvc\
spinboxdelegate\main.cpp
代碼段13 20,類spinboxdelegate的實(shí)現(xiàn),取自z:\examples\mvc\
spinboxdelegate\delegate.cpp
代碼段13
21,代理模型索引的創(chuàng)建,取自z:\examples\mvc\revertproxymodel\revertproxymodel.cpp
代碼段13
22,代理模型revertproxymodel的其他2個(gè)接口函數(shù),取自z:\examples\mvc\revertproxymodel\revertproxymodel.h
代碼段13
23,代理模型revertproxymodel的接口函數(shù)parent(),取自z:\examples\mvc\revertproxymodel\revertproxymodel.cpp
代碼段13 24,接口函數(shù)data( )的實(shí)現(xiàn),取自q:\src\gui\itemviews\
qabstractproxymodel.cpp
代碼段13
25,創(chuàng)建源模型,取自z:\examples\mvc\basicsortfiltermodel\main.cpp
代碼段13 26,類window的構(gòu)造函數(shù),取自z:\examples\mvc\
basicsortfiltermodel\window.cpp
代碼段13 27,令代理模型指向源模型,取自z:\examples\mvc\
basicsortfiltermodel\window.cpp
代碼段13
28,代理模型對(duì)源模型數(shù)據(jù)項(xiàng)的過(guò)濾、排序,取自z:\examples\mvc\basicsortfiltermodel\window.cpp
代碼段13
29,向qlistwidget中添加數(shù)據(jù)項(xiàng),取自z:\examples\mvc\qlistwidget_demo\main.cpp
代碼段13 30,新聞的表示,z:\examples\mvc\item_roles\newsdialog.cpp
代碼段13
31,設(shè)置qlistwidgetitem所表示數(shù)據(jù)項(xiàng)中的數(shù)據(jù)子項(xiàng),取自z:\examples\mvc\item_roles\newsdialog.cpp
代碼段13 32,gdp數(shù)據(jù)的表示,取自z:\examples\mvc\
qtablewidget_demo\main.cpp
代碼段13 33,類qtablewidget的使用,取自z:\examples\mvc\
qtablewidget_demo\main.cpp
代碼段13 34,書籍目錄的表示,取自z:\examples\mvc\
qtreewidget_demo\main.cpp
代碼段13
35,構(gòu)建qtreewidget中的樹狀模型,取自z:\examples\mvc\qtreewidget_demo\main.cpp
第14章 qt中的命令模式
代碼段14 1,qundocommand的部分定義
代碼段14 2,類qundocommand部分成員函數(shù)的實(shí)現(xiàn),摘自
s:\gui\util\qundostack.cpp
代碼段14 3,qundostack基本功能部分的定義,取自s:\gui\util\qundostack.h
代碼段14 4,qundostackprivate的部分定義,取自s:\gui\util\qundostack_p.h
代碼段14 5,類movecommand的定義,取自
z:\examples\undoframework\commands.h
代碼段14 6,類movecommand的實(shí)現(xiàn),取自
z:\examples\undoframework\commands.cpp
第15章 qt中的抽象工廠模式
代碼段15 1,依據(jù)全局變量創(chuàng)建不同風(fēng)格的界面元素
代碼段15 2,抽象工廠模式的使用
代碼段15
3,latin1到unicode的轉(zhuǎn)換,取自z:\examples\factory_pattern\main.cpp
代碼段15 4,類qtextcodec的部分定義,取自s:\corelib\codecs\qtextcodec.h
代碼段15 5,qtextcodec部分成員函數(shù)的實(shí)現(xiàn),取自
s:\corelib\codecs\qtextcodec.cpp
代碼段15 6,類qlatin1codec的定義與實(shí)現(xiàn)
代碼段15
7,類widgetgallery的成員函數(shù)changestyle(),取自z:\examples\styles\widgetgallery.cpp
代碼段15 8,圓角矩形繪制路徑的繪制,取自z:\examples\
styles\norwegianwoodstyle.cpp
代碼段15 9,基本元素的繪制,取自z:\examples\styles\norwegianwoodstyle.cpp
代碼段15 10,基本元素的繪制(續(xù)),取自z:\examples\styles\
norwegianwoodstyle.cpp
代碼段15
11,norwegianwoodstyle的成員函數(shù)drawcontrol,取自z:\examples\styles\norwegianwoodstyle.cpp
代碼段15 12,更改控件屬性的成員函數(shù)polish,取自z:\examples\
styles\norwegianwoodstyle.cpp
代碼段15
13,更改控件尺寸的成員函數(shù)pixelmetric,取自z:\examples\styles\norwegianwoodstyle.cpp
代碼段15 14,設(shè)置與風(fēng)格相關(guān)的一些屬性,取自z:\examples\
styles\norwegianwoodstyle.cpp
代碼段15
15,更改應(yīng)用程序調(diào)色板的成員函數(shù)polish,取自z:\examples\styles\norwegianwoodstyle.cpp
代碼段15
16,設(shè)置填充圖像的私有成員函數(shù)settexture,取自z:\examples\styles\norwegianwoodstyle.cpp
第16章 qt中的觀察者模式
代碼段16 1,設(shè)置qscrollarea為另一控件的觀察者,取自
q:\src\gui\widgets\qscrollarea.cpp
代碼段16 2,將一個(gè)qscrollarea對(duì)象設(shè)置為一個(gè)qlabel對(duì)象的觀察者,取自
z:\examples\imageviewer\imageviewer.cpp
代碼段16 3,類imageviewer中更改圖像顯示比例的函數(shù),取自
z:\examples\imageviewer\imageviewer.cpp
代碼段16 4,鼠標(biāo)手勢(shì)及其回調(diào)函數(shù)的定義,取自
z:\examples\mouse_guesture\mousegesturerecognizer.h
代碼段16 5,類mousegesturerecognizer的定義,取自
z:\examples\mouse_guesture\mousegesturerecognizer.h
代碼段16 6,對(duì)鼠標(biāo)軌跡進(jìn)行識(shí)別的核心算法,取自
z:\examples\mouse_guesture\mousegesturerecognizer.cpp
代碼段16 7,類mousegesture的定義,取自z:\examples\mouse_
guesture\mousegesture.h
代碼段16 8,類gesturecallbacktosignal 的定義,取自
z:\examples\mouse_guesture\mousegesturefilter.cpp
代碼段16 9,類mousegesturefilter的定義
代碼段16
10,鼠標(biāo)手勢(shì)的添加與刪除,取自z:\examples\mouse_guesture\mousegesturefilter.cpp
代碼段16
11,事件濾波器及相關(guān)函數(shù),取自z:\examples\mouse_guesture\mousegesturefilter.cpp
代碼段16 12,類mainwindow的定義,取自z:\examples\mouse_
guesture\mainwindow.h
代碼段16 13,鼠標(biāo)手勢(shì)例子的主函數(shù),取自z:\examples\mouse_guesture\main.cpp
第17章 qt的元對(duì)象系統(tǒng)
代碼段17 1,類type_info的聲明
代碼段17
2,typeid的操作數(shù)可以為基本類型、非多態(tài)類及多態(tài)類,取自z:\examples\typeid\main.cpp
代碼段17
3,判斷一個(gè)qobject派生類的對(duì)象是否“具有”某個(gè)類型,取自z:\examples\qmetaobject_demo\main.cpp
代碼段17
4,獲取qobject派生類對(duì)象的類型信息,取自z:\examples\qmetaobject_demo1\main.cpp
代碼段17 5,獲取qobject派生類對(duì)象的數(shù)據(jù),取自z:\examples\introspect_
qobject\main.cpp
代碼段17 6,qvariant的使用,取自z:\examples\qvariant\main.cpp
代碼段17 7,qvariant支持二進(jìn)制輸入/輸出,摘自z:\examples\qvariant\main.cpp
第18章 智能指針
代碼段18 1,qpointer的功能,取自z:\examples\qpointer_demo\main.cpp
代碼段18 2,對(duì)一個(gè)對(duì)象施加delete運(yùn)算符,取自z:\examples\delete_
object\main.cpp
代碼段18 3,具有淡入顯示效果的類faderwidget
代碼段18 4,使用qpointer來(lái)判斷一個(gè)qfaderwidget控件是否存在
代碼段18 5,qwidget對(duì)qpointer的使用,取自s:\gui\kernel\qwidget.cpp
代碼段18
6,遍歷qmultihash中具有相同關(guān)鍵字的元素,取自z:\examples\qmultihash_demo\main.cpp
代碼段18 7,使用信號(hào)量qreadwritelock鎖定某個(gè)資源以進(jìn)行寫入操作
代碼段18 8,使用信號(hào)量qwritelock鎖定某個(gè)資源以進(jìn)行寫入操作
代碼段18 9,與qpointer相關(guān)的類型與函數(shù),取自s:\corelib\kernel\qobject.cpp
代碼段18 10,qpointer的定義,摘自s:\corelib\kernel\qpointer.h
代碼段18 11,qmetaobject中的相關(guān)代碼,取自s:\corelib\kernel\qobject.cpp
代碼段18 12,qobject析構(gòu)函數(shù)中與qpointer相關(guān)的代碼,摘自
s:\corelib\kernel\qobject.cpp
代碼段18 13,使用類模板qshareddatapointer
實(shí)現(xiàn)隱式共享,取自z:\examples\qsharedatapointer_demo\main.cpp
代碼段18 14,關(guān)于常量型成員函數(shù)的約定,取自z:\examples\select_
const\main.cpp
代碼段18 15,類qshareddata
的定義,取自q:\src\corelib\tools\qshareddata.h
代碼段18 16,類模板qshareddatapointer的定義(待續(xù)),取自
q:\src\corelib\tools\qshareddata.h
代碼段18 17,類模板qshareddatapointer的定義(待續(xù)),取自
q:\src\corelib\tools\qshareddata.h
代碼段18 18,類模板qshareddatapointer的定義(續(xù)),取自
q:\src\corelib\tools\qshareddata.h
參考文獻(xiàn)
索引
章節(jié)摘錄
Qt概述 Qt(發(fā)單詞“Cute”的音)是一個(gè)跨平臺(tái)的C++開發(fā)框架,它包含一個(gè)功能豐富的C++類庫(kù)以及一套簡(jiǎn)便易用的集成開發(fā)工具。Qt所支持的平臺(tái)不但包括Linux,Windows以及MacOSX等主流桌面操作系統(tǒng),還包括諸如Symbian,Maemo以及MeeGo這樣的嵌入式操作系。使用Qt編寫的C++程序具有良好的跨平臺(tái)特性,程序員幾乎無(wú)須更改源代碼,所編寫的應(yīng)用程序即可運(yùn)行在各種操作系統(tǒng)中,這能大幅度縮短開發(fā)周期、降低開發(fā)成本。Qt的C++類庫(kù)是完全面向?qū)ο蟮模?jīng)過(guò)精心的設(shè)計(jì),該類庫(kù)不但功能強(qiáng)大,而且方便易用。這些優(yōu)點(diǎn)使得Qt被Adobe,Boeing,Google,IBM,Motorola,NASA,Skype等大型機(jī)構(gòu)以及眾多的中小公司采用。 1.Qt的歷史 回顧Qt二十余年的發(fā)展歷史,我們可以學(xué)習(xí)是哪些因素促成了Qt的成功。Qt的創(chuàng)始人是HaavardNord和EirikChambe-Eng,二人后來(lái)分別成為'Trolltech公司的首席執(zhí)行官和總裁。1988年,受一個(gè)瑞典公司的委托Haavard開始開發(fā)一個(gè)C++圖形庫(kù)。1990年夏季,二人共同開發(fā)一個(gè)處理超聲波圖像的數(shù)據(jù)庫(kù)系統(tǒng)時(shí),需要一個(gè)能夠運(yùn)行在UNIX,Macintosh以及Windows上的跨平臺(tái)C++圖形庫(kù)。一天,兩人在公園長(zhǎng)椅上享受陽(yáng)光浴時(shí),Haavard說(shuō):“我們需要一個(gè)面向?qū)ο蟮膱D形顯示系統(tǒng)”,之后的討論促成了Qt的誕生。這是Qt成功的首要因素:源于實(shí)際需求?! ?991年-1993年,二人設(shè)計(jì)并實(shí)現(xiàn)了Qt庫(kù)的圖形核心庫(kù),一組控件以及“信號(hào)與槽”機(jī)制。1994年,二人創(chuàng)建了后來(lái)的Trolltech公司,并與1995年5月公開發(fā)布了Qt0.90版。自發(fā)布之日起,Qt就提供了商業(yè)授權(quán)和開源軟件授權(quán)兩種方式。發(fā)布之后的10個(gè)月中,沒(méi)有任何人購(gòu)買Qt的商業(yè)授權(quán)。直到1996年3月,歐洲航天局終于購(gòu)買了Qt的10份商業(yè)授權(quán),Qt才得以逐步壯大。從這一階段的歷史,我們可以看出Qt成功的另外兩個(gè)因素:開發(fā)團(tuán)隊(duì)精良的技術(shù)(比如提出并實(shí)現(xiàn)了“信號(hào)與槽”機(jī)制);歐洲人對(duì)知識(shí)產(chǎn)權(quán)的尊重(Qt創(chuàng)始人能夠放心地發(fā)布Qt的源代碼,而歐洲航天局在能夠看到Qt所有源代碼的條件下仍然購(gòu)買Qt的商業(yè)授權(quán))?! ?997年,KDE項(xiàng)目的組織者M(jìn)atthiasEttrich決定使用Qt構(gòu)建KDE,使Qt實(shí)際成為L(zhǎng)inux上開發(fā)C++圖形程序的標(biāo)準(zhǔn)庫(kù)。2001年,Qt3.0發(fā)布,它的源代碼已經(jīng)超過(guò)50萬(wàn)行。2005年,Qt4.0發(fā)布,包含500多個(gè)類,9000個(gè)函數(shù)。2008年,Nokia收購(gòu)了Trolltech公司,將Qt作為該公司移動(dòng)設(shè)備的主要開發(fā)平臺(tái)?! ?/pre>編輯推薦
《Qt中的C++技術(shù)》共18章。第1章講述為什么會(huì)從眾多的開源C++項(xiàng)目中選擇Qt。讀者可以借鑒其中的方法選擇其他C++案例,或者在學(xué)習(xí)其他編程語(yǔ)言時(shí),使用其中的方法選擇對(duì)應(yīng)的案例。而且,讀者還可以使用其中的工具CppDepend剖析其他軟件的結(jié)構(gòu)與質(zhì)量。這一章還介紹了本書對(duì)術(shù)語(yǔ)、UML類圖方面的約定。在閱讀后續(xù)章節(jié)前,讀者應(yīng)該首先閱讀這一章。本書不但剖析Qt的源代碼,有的章節(jié)還涉及修改Qt的源代碼,此時(shí)需要重新編譯整個(gè)Qt庫(kù)。第2章簡(jiǎn)要介紹Qt,并講述如何在Visual Studio 2010開發(fā)環(huán)境下安裝、編譯Qt庫(kù)。Qt庫(kù)多處用到了類模板特化技術(shù)。考慮到一般的C++教科書不會(huì)詳細(xì)講解這個(gè)話題,故第3章闡述該技術(shù)的概念和基本應(yīng)用,第6章及第9章用到了該技術(shù)。圖書封面
圖書標(biāo)簽Tags
無(wú)評(píng)論、評(píng)分、閱讀與下載
- 還沒(méi)讀過(guò)(95)
- 勉強(qiáng)可看(689)
- 一般般(117)
- 內(nèi)容豐富(4877)
- 強(qiáng)力推薦(399)