作品目錄
目錄回到頂部↑目 錄
前言
第一部分 linux gui編程框架及編程基礎
第1章 linux軟體開發概述 1
1.1 關於linux 1
1.2 關於linux的桌面環境 2
1.3 linux系統中的軟體開發 3
1.3.1 開發所使用的庫 3
1.3.2 gnome的開發結構 4
1.4 開發linux應用程式的程式語言
和編程工具 6
1.5 本書的結構 7
第2章 gtk+/gnome開發簡介 8
2.1 安裝gtk+/gnome庫 8
2.2 第一個gtk+應用程式 9
2.2.1 一個什麼也不能做的視窗 9
2.2.2 示例代碼的含義 9
2.2.3 gtk的hello world 10
2.2.4 gtk+的信號和回調函式原理 12
2.2.5 hello world代碼解釋 14
.2.2.6 運行helloworld 17
2.3 gnome應用程式 17
2.4 gnu c 編譯器 18
2.4.1 使用 gcc 18
2.4.2 gcc 選項 18
2.5 初始化庫 19
2.6 用popt分析參數 20
2.6.1 參數分析方法 20
2.6.2 gnomehello程式的參數分析 22
2.7 國際化 25
2.8 保存配置信息 27
2.8.1 讀出存儲的配置數據 28
2.8.2 在配置檔案中存儲數據 30
2.8.3 配置檔案疊代器 30
2.8.4 節疊代器 33
2.8.5 其他的配置檔案操作 33
2.9 會話管理 34
2.10 gtk+的主循環 36
2.10.1 主循環基本知識 36
2.10.2 退出函式 36
2.10.3 timeout函式 37
2.10.4 idle函式 37
2.10.5 輸入函式 38
2.11 編譯應用程式 39
2.11.1 生成原始碼樹 39
2.11.2 configure.in檔案 41
2.11.3 makefile.am檔案 43
2.11.4 安裝支持檔案 44
第二部分 linux 編程常用c 語言
函式館及構件庫
第3章 glib庫簡介 49
3.1 類型定義 49
3.2 glib的宏 49
3.2.1 常用宏 49
3.2.2 調試宏 50
3.3 記憶體管理 52
3.4 字元串處理 53
3.5 數據結構 55
3.5.1 鍊表 55
3.5.2 樹 59
3.5.3 哈希表 63
3.6 gstring 65
3.7 計時器函式 66
3.8 錯誤處理函式 67
3.9 其他實用函式 67
第4章 構件定位 69
4.1 構件的顯現、映射和顯示 69
4.2 其他的構件概念 70
4.3 構件的類型轉換 72
4.4 組裝構件 72
4.4.1 尺寸分配 73
4.4.2 gtkwindow構件 74
4.4.3 gtkbox 76
4.4.4 表格構件gtktable 79
4.4.5 固定容器構件gtkfixed 83
4.4.6 布局容器構件gtklayout 85
第5章 按鈕構件 87
5.1 普通按鈕gtkbutton 87
5.2 開關按鈕gtktogglebutton 90
5.3 檢查按鈕gtkcheckbutton 91
5.4 無線按鈕gtkradiobutton 91
第6章 調整對象 95
6.1 創建一個調整對象 95
6.2 使用調整對象 95
6.3 調整對象內部機制 96
第7章 文本構件gtktext 98
7.1 創建、配置文本構件 98
7.2 操作文本 99
7.3 鍵盤快捷鍵 100
7.4 gtktext示例 100
第8章 範圍構件gtkrange 105
8.1 滾動條構件gtkscrollbar 105
8.2 比例構件gtkscale 105
8.2.1 函式和信號 105
8.2.2 常用的範圍函式 106
8.2.3 鍵盤和滑鼠綁定 107
8.2.4 示例 107
第9章 雜項構件 114
9.1 標籤構件gtklabel 114
9.2 箭頭構件gtkarrow 117
9.3 工具提示對象gtktooltips 119
9.4 進度條構件gtkprogressbar 120
9.5 對話框構件 126
9.6 pixmap 127
9.7 標尺構件gtkruler 134
9.8 文本輸入構件gtkentry 137
9.9 微調按鈕構件gtkspinbutton 140
9.10 組合框gtkcombo 146
9.11 日曆構件gtkcalendar 148
9.12 顏色選擇構件gtkcolorselect 158
9.13 檔案選擇構件gtkfileselect 162
第10章 容器構件gtkcontainer 165
10.1 事件盒構件gtkeventbox 165
10.2 對齊構件gtkalignment 166
10.3 框架構件gtkframe 167
10.4 比例框架構件gtkaspectframe 169
10.5 分欄視窗構件gtkpanedwindow 170
10.6 視角構件gtkviewport 174
10.7 滾動視窗構件gtkscrolled
window 175
10.8 按鈕盒構件gtkbuttonbox 177
10.9 工具條構件gtktoolbar 181
10.10 筆記本構件gtknotebook 187
第11章 分欄列表構件gtkclist 193
11.1 創建分欄列表構件gtkclist 193
11.2 操作模式 193
11.3 操作分欄列表構件列標題 194
11.4 操縱列表 194
11.5 向列表中添加行 196
11.6 在單元格中設定文本和pixmap
圖片 197
11.7 存儲數據指針 198
11.8 處理選擇 198
11.9 信號 199
11.10 gtkclist示例 199
第12章 樹構件 204
12.1 創建新樹構件 204
12.1.1 添加一個子樹 204
12.1.2 處理選中的列表 205
12.1.3 樹構件內部機制 205
12.1.4 信號 206
12.1.5 函式和宏 206
12.2 樹項構件gtktreeitem 208
12.2.1 信號 209
12.2.2 函式和宏 210
12.3 樹構件示例 210
第13章 gnomeapp構件和gnomeuiinfo 215
13.1 主視窗gnomeapp 215
13.2 gnomeuiinfo 216
13.2.1 創建gnomeuiinfo 216
13.2.2 將gnomeuiinfo轉換為構件 218
第14章 狀態條構件 221
14.1 狀態條構件簡介 221
14.2 gnomeappbar構件 221
14.3 狀態條構件gtkstatusbar 222
第15章 對話框 225
15.1 gnomedialog構件 225
15.1.1 創建對話框 225
15.1.2 填充對話框 226
15.1.3 處理gnomedialog的信號 226
15.1.4 最後的修飾 227
15.2 模態對話框 229
15.3 一個對話框示例 230
15.4 特殊對話框 231
15.4.1 gnomeabout 231
15.4.2 gnomepropertybox—屬性框 233
15.4.3 gnomemessagebox—訊息框 234
第16章 gdk 基礎 236
16.1 gdk和xlib 236
16.2 gdkwindow 237
16.2.1 gdkwindow和gtkwidget 237
16.2.2 gdkwindow屬性 238
16.3 視件和顏色表 240
16.3.1 gdkvisual 240
16.3.2 視件的類型 241
16.3.3 顏色和gdkcolormap 242
16.3.4 獲得顏色表 244
16.4 可繪區和pixmap 244
16.5 事件 245
16.5.1 事件類型 245
16.5.2 事件禁止 247
16.5.3 在gtk+中接收gdk事件 248
16.5.4 滑鼠按鍵事件 250
16.5.5 鍵盤事件 252
16.5.6 滑鼠移動事件 254
16.5.7 焦點變更事件 257
16.6 滑鼠指針 257
16.6.1 指針定位 257
16.6.2 獨占指針 258
16.6.3 改變游標 259
16.7 字型 259
16.8 圖形上下文 263
16.9 繪圖 267
16.9.1 畫點 267
16.9.2 畫線 268
16.9.3 矩形 268
16.9.4 畫弧 269
16.9.5 多邊形 269
16.9.6 文本 270
16.9.7 pixmap像素映射圖形 270
16.9.8 rgb緩衝 271
第三部分 linux gui 生成器glade
第17章 glade:gui生成器 273
17.1 安裝glade 273
17.1.1 glade簡介 273
17.1.2 安裝glade 273
17.1.3 在gnome主選單下為glade
創建選單項 274
17.1.4 在gnome面板上創建快捷
按鈕 275
17.2 用glade生成圖形用戶接口 275
17.2.1 glade的界面簡介 275
17.2.2 用glade創建應用程式界面 277
第四部分 調試工具
第18章 程式調試 283
18.1 用gdb調試應用程式 283
18.1.1 為調試程式做準備 283
18.1.2 獲得gdb幫助 284
18.1.3 gdb常用命令 284
18.1.4 gdb 套用舉例 286
18.2 用xxgdb調試應用程式 289
第五部分 附 錄
附錄a gnomehello原始碼 293
附錄b 線上資源 304
附錄c gtk+/gnome對象總覽 306