没有合适的资源?快使用搜索试试~ 我知道了~
首页GTK+与Gnome应用开发深度指南:Havoc Pennington的入门教程
GTK+与Gnome应用开发深度指南:Havoc Pennington的入门教程
需积分: 9 10 下载量 129 浏览量
更新于2024-07-23
收藏 2.71MB PDF 举报
《GTK+与Gnome应用程序开发指南》是一本深入浅出的教程,由Havoc Pennington撰写,由Red Hat Advanced Development Labs发行,首次出版于1999年。这本书专注于在Linux环境下使用GTK+/Gnome进行应用开发,是当时该领域的重要参考资料。作者介绍了Gnome开发框架,包括非Gnome库如glib、GTK+、ORBit、Imlib2以及Gnome特有的库如libgnome、libgnomeui、libgnorba等,这些都是构建现代GNOME桌面环境和应用程序的基础。
首先,书中的概述部分(第24页)对Gnome进行了介绍,阐述了其作为桌面环境的核心理念和特点。Gnome是一个开源、免费且高度可定制的桌面环境,旨在提供用户友好的图形界面和高效的开发者工具。Gnome开发框架为开发者提供了一个模块化的平台,支持跨平台应用程序的开发。
glib(第30页)被重点提及,它是Gnome中的一个重要基础库,提供了内存管理、字符串处理、数据结构等功能,如列表、树(包括GTree和GNode)、哈希表等,以及调试和通用功能,如类型定义和频繁使用的宏。glib的易用性和可移植性使得它成为众多应用程序开发的基础。
紧接着,GTK+(第50页)作为图形用户界面工具包,是本书的核心内容。GTK+允许开发者创建美观且功能丰富的图形界面,包括窗口、控件、布局管理和事件处理等。书中详细讲解了如何使用GTK+的基本元素和概念,这对于理解和构建复杂的应用程序至关重要。
此外,还介绍了其他相关的库,如ORBit(远程过程调用框架)、Imlib2(图像处理库)、libart_lgpl(艺术主题库)、gnome-print(打印支持)、gnome-xml(XML处理)、Guile(GNU编程语言的交互式环境)以及Bonobo(数据流编程框架)。这些库共同构成了一个完整的开发工具包,满足了不同层面的需求。
关于头文件的使用(第28页),作者提醒读者注意不同库之间的接口和依赖关系,确保正确引用。同时,书籍结构清晰,从基础库到高级GUI设计,帮助读者逐步掌握开发流程。
《GTK+与Gnome应用程序开发指南》是一本不可或缺的资源,对于希望进入Linux桌面应用开发领域的学习者来说,无论是初学者还是经验丰富的开发者,都能从中找到所需的知识和技巧,以构建高效、稳定的Gnome应用程序。随着技术的发展,虽然某些库可能已经更新或有替代品,但核心概念和原理依然适用,这本书的价值仍然不可忽视。
Description ...................................................................................353
GtkHScale ..............................................................................................353
Library...........................................................................................354
Header File ...................................................................................354
Description ...................................................................................354
GtkVScale ..............................................................................................354
Library...........................................................................................354
Header File ...................................................................................354
Description ...................................................................................354
GtkScrollbar........................................................................................354
Library...........................................................................................354
Header File ...................................................................................354
Description ...................................................................................354
GtkHScrollbar .....................................................................................355
Library...........................................................................................355
Header File ...................................................................................355
Description ...................................................................................355
GtkVScrollbar .....................................................................................355
Library...........................................................................................355
Header File ...................................................................................355
Description ...................................................................................355
GtkSeparator........................................................................................355
Library...........................................................................................355
Header File ...................................................................................355
Description ...................................................................................355
GtkHSeparator .....................................................................................355
Library...........................................................................................356
Header File ...................................................................................356
Description ...................................................................................356
GtkVSeparator .....................................................................................356
Library...........................................................................................356
Header File ...................................................................................356
Description ...................................................................................356
GtkPreview............................................................................................356
Library...........................................................................................356
Header File ...................................................................................356
Description ...................................................................................356
GtkProgress..........................................................................................357
Library...........................................................................................357
Header File ...................................................................................357
Description ...................................................................................357
GtkProgressBar ...................................................................................357
Library...........................................................................................357
Header File ...................................................................................357
Description ...................................................................................357
ZvtTerm ..................................................................................................357
Library...........................................................................................358
Header File ...................................................................................357
Description ...................................................................................358
Canvas Items ...................................................................................................358
GnomeCanvasItem ...............................................................................359
Library...........................................................................................359
Header File ...................................................................................358
Description ...................................................................................359
GnomeCanvasRE ..................................................................................359
Library...........................................................................................359
16
Header File ...................................................................................359
Description ...................................................................................359
GnomeCanvasEllipse ...........................................................................359
Library...........................................................................................359
Header File ...................................................................................359
Description ...................................................................................360
GnomeCanvasRect................................................................................360
Library...........................................................................................360
Header File ...................................................................................360
Description ...................................................................................360
GnomeCanvasGroup............................................................................360
Library...........................................................................................360
Header File ...................................................................................360
Description ...................................................................................360
GnomeCanvasImage ............................................................................360
Library...........................................................................................360
Header File ...................................................................................360
Description ...................................................................................360
GnomeCanvasLine................................................................................361
Library...........................................................................................361
Header File ...................................................................................361
Description ...................................................................................361
GnomeCanvasPolygon.........................................................................361
Library...........................................................................................361
Header File ...................................................................................361
Description ...................................................................................361
GnomeCanvasText................................................................................361
Library...........................................................................................362
Header File ...................................................................................361
Description ...................................................................................362
GnomeCanvasWidget...........................................................................362
Library...........................................................................................362
Header File ...................................................................................362
Description ...................................................................................362
GnomeCanvasTextItem........................................................................362
Library...........................................................................................362
Header File ...................................................................................362
Description ...................................................................................362
Miscellaneous Objects....................................................................................363
GnomeClient..........................................................................................363
Library...........................................................................................363
Header File ...................................................................................363
Description ...................................................................................363
GnomeDEntryEdit ................................................................................363
Library...........................................................................................363
Header File ...................................................................................363
Description ...................................................................................363
GnomeDockLayout...............................................................................364
Library...........................................................................................364
Header File ...................................................................................364
Description ...................................................................................364
GnomeMDIChild ..................................................................................364
Library...........................................................................................364
Header File ...................................................................................364
Description ...................................................................................364
GnomeMDIGenericChild.....................................................................365
17
Library...........................................................................................365
Header File ...................................................................................365
Description ...................................................................................365
GnomeMDI ............................................................................................365
Library...........................................................................................365
Header File ...................................................................................365
Description ...................................................................................365
GtkData...................................................................................................365
Library...........................................................................................366
Header File ...................................................................................365
Description ...................................................................................366
GtkAdjustment......................................................................................366
Library...........................................................................................366
Header File ...................................................................................366
Description ...................................................................................366
GtkTooltips.............................................................................................366
Library...........................................................................................366
Header File ...................................................................................366
Description ...................................................................................366
GtkItemFactory......................................................................................367
Library...........................................................................................367
Header File ...................................................................................367
Description ...................................................................................367
15. Table of Header Files .........................................................................................368
16. Frequently Asked Questions ............................................................................375
Questions, with Answers ..............................................................................375
How do I make my application beep? ...............................................375
When do I need to destroy my widgets?...........................................375
When I turn on memory profiling in glib, my application becomes
unstable. What gives? .................................................................375
To create a custom display, I want to place widgets in arbitrary
locations, or move them around rapidly, or draw to them
directly. How? ..............................................................................375
Why does my memory debugging tool show memory leaks in glib?
375
I get a bunch of "assertion failed" warnings from GTK+. What
causes these? ................................................................................376
Why are some things in Gnome rather than GTK+? .......................376
How can I center a window on the screen?.......................................376
Is there a widget that does printing?..................................................377
When I fork(), I get a bunch of warnings and my program crashes.
What’s going on? .........................................................................377
When do I need to call gtk_widget_realize() vs.
gtk_widget_show()? .................................................................377
When creating a pixmap, I get the warning: Creating pixmap
from xpm with NULL window and colormap. What’s
wrong?...........................................................................................378
How can I separate the GUI from the rest of my application?.......378
I don’t like the default appearance of [some widget]. How do I
change its appearance? ...............................................................379
Thanks for the lecture, but I have a really good reason to change the
appearance of a widget. How do I override the theme? .......380
Why are signals specified as strings rather than integers or some
sort of macro?...............................................................................380
Why is GTK+ written in C? .................................................................380
My motion event handler is only invoked once; why is that? .......380
18
Can I move the mouse pointer myself? .............................................380
How do I read the pixels out of a GdkPixmap? ...............................381
I’m drawing a lot of points to the screen with gdk_draw_point(),
and it’s unbelievably slow. What’s wrong? How can I render
image data to the screen? ...........................................................381
I’m trying to set the background of a GtkLabel, and it doesn’t work.
381
In the GTK+ and Gnome source code, many functions have two
variants: one called gtk_whatever_foo(), and another called
gtk_whatever_real_foo(). What’s the difference?.............382
How do I "gray out" a widget, so the user can’t select it?...............382
I’m connecting to "button_press_event" or some other event signal,
but the callback is never invoked..............................................382
I want to use the arrow keys as a control in my application, but
GTK+ keeps stealing the key press events to move the focus
around...........................................................................................382
Does GTK+ have multiple inheritance?.............................................383
I’m getting error messages from GDK. How can I determine the
cause of these?..............................................................................383
How do I update the GUI without returning control to the main
loop? ..............................................................................................383
How should I format code to be included in GTK+ or Gnome?....383
Is there a GUI builder for GTK+ and Gnome?..................................384
How well do GTK+ and Gnome support internationalization? ....384
17. Online Resources................................................................................................385
Obtaining and Compiling the Libraries ......................................................385
Web sites...........................................................................................................385
Mailing Lists....................................................................................................385
Internet Relay Chat.........................................................................................386
This Book .........................................................................................................386
18. Code Listings ......................................................................................................387
The GnomeHello Application.......................................................................387
hello.c ..................................................................................................387
app.h.......................................................................................................389
app.c.......................................................................................................390
menus.h ..................................................................................................392
menus.c ..................................................................................................393
The GtkEv Widget...........................................................................................395
gtkev.h ..................................................................................................395
gtkev.c ..................................................................................................396
19
List of Tables
4-1. Standard make targets ..................................................................................................82
6-1. GnomeUIInfoType Values.........................................................................................107
9-1. The GTK+ Fundamental Types ................................................................................136
10-1. GdkWindowAttr Fields ...........................................................................................166
10-2. GdkEventType Values..............................................................................................174
10-3. Event Masks ..............................................................................................................175
10-4. GtkWidget Events.....................................................................................................177
10-5. Modifier Masks for Key and Button Events .........................................................180
10-6. GC Attributes ............................................................................................................202
12-1. GnomeCanvasRE Arguments.................................................................................268
12-2. GnomeCanvasLine Arguments..............................................................................270
12-3. GnomeCanvasPolygon Arguments.......................................................................271
12-4. GnomeCanvasImage Arguments...........................................................................272
12-5. GnomeCanvasText Arguments ..............................................................................273
12-6. GnomeCanvasWidget Arguments.........................................................................275
15-1. glib, GTK+, and Gnome Header Files ...................................................................368
List of Figures
2-1. Familiar C Macros ........................................................................................................31
2-2. Macros for storing integers in pointers .....................................................................31
2-3. Precondition Checks ....................................................................................................32
2-4. Assertions ......................................................................................................................32
2-5. glib memory allocation................................................................................................34
2-6. Allocation macros.........................................................................................................34
2-7. Portability Wrappers ....................................................................................................35
2-8. In-place string modifications ......................................................................................35
2-9. String Conversions .......................................................................................................36
2-10. Allocating Strings .......................................................................................................36
2-11. Concatenating strings.................................................................................................37
2-12. Manipulating NULL-terminated string vectors.....................................................37
2-13. Changing linked list contents ...................................................................................39
2-14. Accessing data in a linked list ..................................................................................40
2-15. Manipulating a linked list .........................................................................................40
2-16. Sorted lists ...................................................................................................................41
2-17. Creating and destroying balanced binary trees .....................................................42
2-18. Manipulating GTree contents ...................................................................................42
2-19. Determining the size of a GTree ...............................................................................42
2-20. Traversing GTree.........................................................................................................43
2-21. Accessing GNode members......................................................................................43
2-22. Creating a GNode.......................................................................................................43
2-23. Building a GNode tree...............................................................................................44
2-24. Building a GNode.......................................................................................................44
2-25. Destroying a GNode ..................................................................................................44
2-26. Predicates for GNode.................................................................................................45
2-27. GNode Properties.......................................................................................................45
2-28. Accessing a GNode ....................................................................................................46
2-29. GHashTable .................................................................................................................47
2-30. Pre-written hashes/comparisons.............................................................................47
2-31. Manipulating GHashTable........................................................................................47
2-32. Freezing and thawing GHashTable .........................................................................48
3-1. Hello, World ..................................................................................................................50
20
剩余413页未读,继续阅读
2009-05-17 上传
2013-01-30 上传
2023-07-16 上传
2023-07-20 上传
2023-08-25 上传
2023-11-09 上传
2023-09-29 上传
2023-09-02 上传
2023-06-02 上传
hdkudex
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 磁性吸附笔筒设计创新,行业文档精选
- Java Swing实现的俄罗斯方块游戏代码分享
- 骨折生长的二维与三维模型比较分析
- 水彩花卉与羽毛无缝背景矢量素材
- 设计一种高效的袋料分离装置
- 探索4.20图包.zip的奥秘
- RabbitMQ 3.7.x延时消息交换插件安装与操作指南
- 解决NLTK下载停用词失败的问题
- 多系统平台的并行处理技术研究
- Jekyll项目实战:网页设计作业的入门练习
- discord.js v13按钮分页包实现教程与应用
- SpringBoot与Uniapp结合开发短视频APP实战教程
- Tensorflow学习笔记深度解析:人工智能实践指南
- 无服务器部署管理器:防止错误部署AWS帐户
- 医疗图标矢量素材合集:扁平风格16图标(PNG/EPS/PSD)
- 人工智能基础课程汇报PPT模板下载
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功