类
GtkDrawingArea
说明 [src]
class Gtk.DrawingArea : Gtk.Widget
implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget {
/* No available fields */
}
GtkDrawingArea
是一个允许使用 cairo 绘制的微件。
它本质上是一个空白微件;可在其上进行绘制。在创建一个绘图区域后,应用程序可能希望连接到
-
当微件在特定显示屏上实例化时,采取任何必要操作的
GtkWidget::realize
信号。(响应此信号来创建 GDK 资源。) -
当微件调整大小时,采取任何必要操作的
GtkDrawingArea::resize
信号。 -
调用
gtk_drawing_area_set_draw_func()
来处理重新绘制微件内容。
以下代码段演示如何使用绘图区域以常规微件前景色显示一个圆圈。
简单 GtkDrawingArea 使用情况
static void
draw_function (GtkDrawingArea *area,
cairo_t *cr,
int width,
int height,
gpointer data)
{
GdkRGBA color;
cairo_arc (cr,
width / 2.0, height / 2.0,
MIN (width, height) / 2.0,
0, 2 * G_PI);
gtk_widget_get_color (GTK_WIDGET (area),
&color);
gdk_cairo_set_source_rgba (cr, &color);
cairo_fill (cr);
}
int
main (int argc, char **argv)
{
gtk_init ();
GtkWidget *area = gtk_drawing_area_new ();
gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (area), 100);
gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (area), 100);
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (area),
draw_function,
NULL, NULL);
return 0;
}
通常情况下,绘图函数在绘图区域首次显示在屏幕上或被另一个窗口覆盖然后未覆盖时调用。你还可以通过使用 gtk_widget_queue_draw()
将内容添加到绘图区域窗口的“损坏区域”来强制重新绘制。这将导致绘图区域再次调用绘图函数。
用于绘制的可用例程在 Cairo 文档 中说明;GDK 提供了其他 API 来与 Cairo 集成,如 gdk_cairo_set_source_rgba()
或 gdk_cairo_set_source_pixbuf()
。
要接收绘图区域上的鼠标事件,你需要使用事件控制器。要接收键盘事件,你需要在绘图区域上设置“可获得焦点”属性,并且你可能需要绘制一些用户可见的指示,表明绘图区域已获得焦点。
如果你需要对微件进行更复杂的控制,你应该考虑创建你自己的 GtkWidget
子类。
实例方法
从 GtkAccessible 继承的方法 (19)
gtk_accessible_announce
请求用户的屏幕阅读器播报给定的 message。
自:4.14
gtk_accessible_get_accessible_parent
检索可访问对象的辅助父对象。
自:4.10
gtk_accessible_get_accessible_role
检索可访问对象的辅助角色。
gtk_accessible_get_at_context
检索给定可访问对象对应的实现。
自:4.10
gtk_accessible_get_bounds
查询此可访问对象的坐标和尺寸。
自:4.10
gtk_accessible_get_first_accessible_child
检索可访问对象的第一个可访问子对象。
自:4.10
gtk_accessible_get_next_accessible_sibling
检索可访问对象的下一个可访问兄弟对象。
自:4.10
gtk_accessible_get_platform_state
查询平台状态,例如 focus。
自:4.10
gtk_accessible_reset_property
将辅助属性重置为其默认 value。
gtk_accessible_reset_relation
将辅助关系重置为其默认 value。
gtk_accessible_reset_state
将辅助状态重置为其默认 value。
gtk_accessible_set_accessible_parent
设置可访问对象的父对象和兄弟对象。
自:4.10
gtk_accessible_update_next_accessible_sibling
更新下一个可访问 sibling。
自:4.10
gtk_accessible_update_property
更新可访问 property 的列表。
gtk_accessible_update_property_value
更新可访问 property 的数组。
gtk_accessible_update_relation
更新可访问 relation 的列表。
gtk_accessible_update_relation_value
更新可访问 relation 的数组。
gtk_accessible_update_state
更新可访问 state 的列表。
gtk_accessible_update_state_value
更新可访问 state 的数组。
从 GtkBuildable 继承的方法 (1)
属性
从 GtkWidget 继承的属性 (34)
Gtk.Widget:can-focus
这个小部件或其任何子控件是否可以接收输入 focus。
Gtk.Widget:can-target
这个小部件是否可以接收指针 events。
Gtk.Widget:css-classes
应用于此 widget 的 css 类的列表。
Gtk.Widget:css-name
在 CSS 树中此小部件的名称。
Gtk.Widget:cursor
由 widget
使用的光标。
Gtk.Widget:focus-on-click
当用 mouse 点击小部件时,小部件是否应该获取焦点。
Gtk.Widget:focusable
此小部件本身是否将接受输入 focus。
Gtk.Widget:halign
如果小部件获取额外 space,如何分配水平空间。
Gtk.Widget:has-default
此小部件是否为默认 widget。
Gtk.Widget:has-focus
小部件是否具有输入 focus。
Gtk.Widget:has-tooltip
启用或禁用对 widget
上的 GtkWidget::query-tooltip
信号的发出。
Gtk.Widget:height-request
覆盖 widget 的高度请求。
Gtk.Widget:hexpand
是否需要水平 expand。
Gtk.Widget:hexpand-set
是否使用 hexpand
属性。
Gtk.Widget:layout-manager
用于计算小部件首选大小并分配其子项的 GtkLayoutManager
实例。
Gtk.Widget:margin-bottom
小部件底部边距。
Gtk.Widget:margin-end
水平方向小部件末尾边距。
Gtk.Widget:margin-start
水平方向小部件首部边距。
Gtk.Widget:margin-top
小部件顶部边距。
Gtk.Widget:name
小部件名称。
Gtk.Widget:opacity
小部件的请求不透明度。
Gtk.Widget:overflow
超出小部件内容区域的内容如何处理。
Gtk.Widget:parent
此小部件的父小部件。
Gtk.Widget:receives-default
如果小部件获得焦点,是否会接收默认操作。
Gtk.Widget:root
包含此小部件的小部件树的 GtkRoot
小部件。
Gtk.Widget:scale-factor
小部件的缩放比例。
Gtk.Widget:sensitive
小部件是否可以响应输入。
Gtk.Widget:tooltip-markup
将工具提示文本设置为给定字符串,该字符串使用 Pango 标记标记。
Gtk.Widget:tooltip-text
将工具提示文本设置为给定的字符串。
Gtk.Widget:valign
如果小部件有额外空间,如何分配垂直空间。
Gtk.Widget:vexpand
是否垂直展开。
Gtk.Widget:vexpand-set
是否使用 vexpand
属性。
Gtk.Widget:visible
小部件是否可见。
Gtk.Widget:width-request
小部件宽度请求的覆盖。
从 GtkAccessible (1)继承的属性
信号
从 GtkWidget (13)继承的信号
GtkWidget::destroy
发出信号,表明小部件的所有持有者都应释放它们所持有的引用。
GtkWidget::direction-changed
小部件的文本方向发生改变时发出。
GtkWidget::hide
widget
隐藏时发出。
GtkWidget::keynav-failed
如果键盘导航失败,则发出。
GtkWidget::map
将要映射 widget
时发出。
GtkWidget::mnemonic-activate
通过助记符激活小部件时发出。
GtkWidget::move-focus
焦点移动时发出。
GtkWidget::query-tooltip
小部件的工具提示即将显示时发出。
GtkWidget::realize
当 widget
与 GdkSurface
相关联时发出。
GtkWidget::show
widget
显示时发出。
GtkWidget::state-flags-changed
小部件状态更改时发出。
GtkWidget::unmap
将要取消映射 widget
时发出。
GtkWidget::unrealize
与 widget
相关联的 GdkSurface
被销毁时发出。
从 GObject (1)继承的信号
GObject::notify
当对象的一个属性通过 g_object_set_property()、g_object_set() 等设置其值时,将在该对象上发出 notify 信号。
类结构
struct GtkDrawingAreaClass {
GtkWidgetClass parent_class;
void (* resize) (
GtkDrawingArea* area,
int width,
int height
);
}
没有可用说明。
类成员
parent_class: GtkWidgetClass
没有可用说明。
resize: void (* resize) ( GtkDrawingArea* area, int width, int height )
没有可用说明。