视角 Viewports@GTK+ 2.0 中文教程连载

视角 Viewports

一般很少直接使用视角(Viewport)构件。多数情况下是使用 滚动窗口 构件,它内部使用了视角。

视角构件允许在其中放置一个超过自身大小的构件,这样你可以一次看构件的一部分。它用调整对象 定义当前显示的区域。

用下面的函数创建一个视角。

GtkWidget *gtk_viewport_new( GtkAdjustment *hadjustment,
GtkAdjustment *vadjustment );

可以看到,创建构件时能够指定构件使用的水平和垂直调整对象。如果给函数传递 NULL 参数,构件会自己创建调整对象。

创建构件后,可以用下面四个函数取得和设置它的调整对象:

GtkAdjustment *gtk_viewport_get_hadjustment (GtkViewport *viewport );

GtkAdjustment *gtk_viewport_get_vadjustment (GtkViewport *viewport );

void gtk_viewport_set_hadjustment( GtkViewport *viewport,
GtkAdjustment *adjustment );

void gtk_viewport_set_vadjustment( GtkViewport *viewport,
GtkAdjustment *adjustment );

剩下的这个函数用于改变视角的外观:

void gtk_viewport_set_shadow_type( GtkViewport   *viewport,
GtkShadowType type );

type 参数可以取以下值:

  GTK_SHADOW_NONE,
GTK_SHADOW_IN,
GTK_SHADOW_OUT,
GTK_SHADOW_ETCHED_IN,
GTK_SHADOW_ETCHED_OUT

<<< Previous Home Next >>>
分栏窗口构件 Paned Window WidgetsUp 滚动窗口 Scrolled Windows
简介 GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工具包。它遵循 LGPL 许可证,所以你可以用它来开发开源软件、自由软件,甚至是 封闭源代码的商业软件,而不用花费任何钱来购买许可证和使用权。 GTK 被称为 GIMP 工具包是因为最初写它是用来开发 GIMP (GNU 图像处理程序) 的,但是它现在已经被用于很多软件项目了,包括 GNOME (GNU 网络对象模型环境)。GTK 是在 GDK (GIMP Drawing Kit) 和 gdk-pixbuf 的基础上建立起来的,GDK 基本上是对访问窗口的 底层函数 (在 X 窗口系统中是 Xlib) 的一层封装,gdk-pixbuf 是一个用于客户端图像处理的库。 GTK 的创建者是: · Peter Mattis petm@xcf.berkeley.edu · Spencer Kimball spencer@xcf.berkeley.edu · Josh MacDonald jmacd@xcf.berkeley.edu GTK 的当前维护者是: · Owen Taylor otaylor@redhat.com · Tim Janik timj@gtk.org GTK 实质上是一个面向对象的应用程序接口 (API)。尽管完全用 C 写成的,但它是基于类和回调函数 (指向函数的指针) 的思想实现的。 还 有一个名为 GLib 的第三个组件,包含一些标准函数的替代函数,以及一些处理链表等数据结构的函数等。这些替代函数被用来增强 GTK 的可移植性,因为它们所实现的一些函数在其它 Unix 系统上未实现或不符合标准,比如 g_strerror()。一些是对 libc 的对应函 数的增强,比如 g_malloc() 具有增强的调试功能。 在 2.0 版中,GLib 又加入这样一些新内容:构成 GTK 类层次基础的类型系统 (type system),在 GTK 中广泛使用的信号系统,对各 种不同平台的线程 API 进行抽象而得的一个线程 API,以及一个加载模块的工具。 作为最后一个组件,GTK 使用了 Pango 库来处理国际化文字输出。 本 教程讲述 GTK 的 C 接口。还有许多其它语言的 GTK 绑定如 C++、Perl、Python、TOM、Ada95、Objective C、Free Pascal、Eiffel、Java 和 C#。如果你想使用 GTK 其它语言的绑定,请先查看该绑定的文档。有时这些文档会讲一些重要的概念,然后你再来参考本教程。还有一 些跨平台的 API (如 wxWindows 和 V),它们把 GTK 作为一个支持的平台。同样,先参考它们的文档。 如果你用 C++ 来开发 GTK 应用程序,有以下几点需要注意。已有一个 GTK 的 C++ 绑定叫做 GTK-- (译者注:现在叫做 gtkmm),提供 一个更符合 C++ 规范的接口,你可以先看看这个接口。如果你由于种种原因不喜欢这种方法,还有另外两种使用 GTK 的方法。首先,你 可以只使用 C++ 中的 C 子集来调用 GTK,这样就可以使用本教程描述的 C 接口。其次,你可以用下述方法同时使用 GTK 和 C++:把所 用的回调函数定义为 C++ 类中的静态成员函数,然后仍然使用 C 接口来调用 GTK。如果你选择后一种方法,你可以把指向要操作的对象 3 / 258 的指针 (即所谓的 "this")作为回调函数的 data 参数。选择哪一种方法仅仅是个人的喜好问题,因为不管用哪一种方法,你都会得到 C++ 和 GTK。它们都不需要特殊的预处理程序,因此你可以同时使用标准 C++ 和 GTK。 本教程试图尽可能详细地描述 GTK,但是肯定不能面面俱到。本教程假设你能够较好的理解 C 语言,并且了解怎样编写一个 C 程序。有 X 编程经验会很有帮助,但不是必要条件。如果 GTK 是你学习的第一个构件工具包,请告诉我们你怎样找到这个教程,以及学习时有什 么困难。还有其它一些语言的绑定,如 C++、Objective C、ADA、Guile 等,但我不了解这些。 本教程仍在不断完善中。请到 http://www.gtk.org/ 查看更新情况。 我非常乐意听到你在使用本教程学习 GTK 时遇到的各种困难,并欢迎对怎样改进此文档提出建议。更多信息请参阅投稿这一章。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值