框架 Frames@GTK+ 2.0 中文教程连载
2010-12-21 15:29
344 查看
框架 Frames
框架(Frames)可以用于在盒子中封装一个或一组构件,框架本身还可以有一个标签。标签的位置和盒子的风格可以灵活改变。
框架可以用下面的函数创建:
GtkWidget *gtk_frame_new( const gchar *label );
标签缺省放在框架的左上角。传递NULL值作为label参数时,框架不显示标签。标签文本可以用下面的函数改变。
void gtk_frame_set_label( GtkFrame *frame,
const gchar *label );
标签的位置可以用下面的函数改变:
void gtk_frame_set_label_align( GtkFrame *frame,
gfloat xalign,
gfloat yalign );
xalign和yalign参数取值范围介于0.0和1.0之间。xalign指定标签在框架构件上部水平线上的位置。yalign目前还没有被使用。xalign的缺省值是0.0,它将标签放在框架构件的最左端。
下面的函数改变盒子的风格,用于显示框架的轮廓。
void gtk_frame_set_shadow_type( GtkFrame *frame,
GtkShadowType type);
type参数可以取以下值之一:
GTK_SHADOW_NONE
GTK_SHADOW_IN
GTK_SHADOW_OUT
GTK_SHADOW_ETCHED_IN (缺省值)
GTK_SHADOW_ETCHED_OUT
下面的示例演示了怎样使用框架构件。
#include
int main( int argc,
char *argv[] )
{
/* GtkWidget 是构件的存储类型 */
GtkWidget *window;
GtkWidget *frame;
/* 初始化 */
gtk_init (&argc, &argv);
/* 创建一个新窗口 */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Frame Example");
/* 在这里我们将 "destroy" 事件连接到一个回调函数 */
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_set_size_request (window, 300, 300);
/* 设置窗口的边框宽度 */
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
/* 创建一个框架 */
frame = gtk_frame_new (NULL);
gtk_container_add (GTK_CONTAINER (window), frame);
/* 设置框架的标签 */
gtk_frame_set_label (GTK_FRAME (frame), "GTK Frame Widget");
/* 将标签定位在框架的右边 */
gtk_frame_set_label_align (GTK_FRAME (frame), 1.0, 0.0);
/* 设置框架的风格 */
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_OUT);
gtk_widget_show (frame);
/* 显示窗口 */
gtk_widget_show (window);
/* 进入事件循环 */
gtk_main ();
return 0;
}
<<< Previous Home Next >>>
布局容器 Layout Container Up 比例框架 Aspect Frames
框架(Frames)可以用于在盒子中封装一个或一组构件,框架本身还可以有一个标签。标签的位置和盒子的风格可以灵活改变。
框架可以用下面的函数创建:
GtkWidget *gtk_frame_new( const gchar *label );
标签缺省放在框架的左上角。传递NULL值作为label参数时,框架不显示标签。标签文本可以用下面的函数改变。
void gtk_frame_set_label( GtkFrame *frame,
const gchar *label );
标签的位置可以用下面的函数改变:
void gtk_frame_set_label_align( GtkFrame *frame,
gfloat xalign,
gfloat yalign );
xalign和yalign参数取值范围介于0.0和1.0之间。xalign指定标签在框架构件上部水平线上的位置。yalign目前还没有被使用。xalign的缺省值是0.0,它将标签放在框架构件的最左端。
下面的函数改变盒子的风格,用于显示框架的轮廓。
void gtk_frame_set_shadow_type( GtkFrame *frame,
GtkShadowType type);
type参数可以取以下值之一:
GTK_SHADOW_NONE
GTK_SHADOW_IN
GTK_SHADOW_OUT
GTK_SHADOW_ETCHED_IN (缺省值)
GTK_SHADOW_ETCHED_OUT
下面的示例演示了怎样使用框架构件。
#include
int main( int argc,
char *argv[] )
{
/* GtkWidget 是构件的存储类型 */
GtkWidget *window;
GtkWidget *frame;
/* 初始化 */
gtk_init (&argc, &argv);
/* 创建一个新窗口 */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Frame Example");
/* 在这里我们将 "destroy" 事件连接到一个回调函数 */
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_set_size_request (window, 300, 300);
/* 设置窗口的边框宽度 */
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
/* 创建一个框架 */
frame = gtk_frame_new (NULL);
gtk_container_add (GTK_CONTAINER (window), frame);
/* 设置框架的标签 */
gtk_frame_set_label (GTK_FRAME (frame), "GTK Frame Widget");
/* 将标签定位在框架的右边 */
gtk_frame_set_label_align (GTK_FRAME (frame), 1.0, 0.0);
/* 设置框架的风格 */
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_OUT);
gtk_widget_show (frame);
/* 显示窗口 */
gtk_widget_show (window);
/* 进入事件循环 */
gtk_main ();
return 0;
}
<<< Previous Home Next >>>
布局容器 Layout Container Up 比例框架 Aspect Frames
相关文章推荐
- 比例框架 Aspect Frames@GTK+ 2.0 中文教程连载
- 改进了的 Hello World@GTK+ 2.0 中文教程连载
- 日历 Calendar@GTK+ 2.0 中文教程连载
- 工具栏 Toolbar@GTK+ 2.0 中文教程连载
- 范围构件 Range Widgets || 滚动条构件 Scrollbar Widgets@GTK+ 2.0 中文教程连载
- 颜色选择 Color Selection@GTK+ 2.0 中文教程连载
- 比例构件 Scale Widgets@GTK+ 2.0 中文教程连载
- 文件选择 File Selections@GTK+ 2.0 中文教程连载
- 笔记本 Notebooks@GTK+ 2.0 中文教程连载
- GLib@GTK+ 2.0 中文教程连载
- 容器构件 Container Widgets 事件盒 The EventBox@GTK+ 2.0 中文教程连载
- 对齐构件 The Alignment widget@GTK+ 2.0 中文教程连载
- 使用套件示例@GTK+ 2.0 中文教程连载 现在我们已经介绍了难的办法,这里介绍怎样用 gtk_item_factory 调用来做。
- GTK 信号@GTK+ 2.0 中文教程连载
- 杂项构件/ 标签 Labels@GTK+ 2.0 中文教程连载
- 固定容器 Fixed Container@GTK+ 2.0 中文教程连载
- 杂项构件/箭头 Arrows@GTK+ 2.0 中文教程连载
- 布局容器 Layout Container@GTK+ 2.0 中文教程连载
- 编写 GTK 应用程序的技巧 @GTK+ 2.0 中文教程连载
- 示例程序代码Tictactoe@GTK+ 2.0 中文教程连载