Chinaunix首页 | 论坛 | 博客
  • 博客访问: 636750
  • 博文数量: 237
  • 博客积分: 4285
  • 博客等级: 上校
  • 技术积分: 2701
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-15 14:05
文章分类

全部博文(237)

文章存档

2014年(2)

2013年(3)

2012年(47)

2011年(15)

2010年(68)

2009年(102)

我的朋友

分类: 嵌入式

2009-11-26 13:34:11

三、固定容器构件

       GtkFixed(固定容器构件)允许将构件放在窗口的固定位置,这个位置是相对与窗口的左上角的。构件的位置可以动态改变。

       使用GtkFixed为构件定位,在大多数情况下都是不可取的。因为当用户调整窗口尺寸时,勾结不能适应窗口的尺寸变化。当然,你可以在窗口尺寸变化的时候采取行动,调整构件的位置和大小。

       gtk_fixed_new函数用于创建新的固定容器构件。

 

6

名称:

gtk_fixed_new

功能

创建固定容器构件

头文件

#include

函数原形

GtiWidget *gtk_fixed_new(void);

参数

返回值

新的固定容器构件

      

      

 gtk_fixed_put函数将构件放在由x,y指定的位置。

 

7

名称:

gtk_fixed_put

功能

将构件放入固定容器构件的指定位置

头文件

#include

函数原形

void gtk_fixed_put(GtkFixed *fixed,GtkWidget *widget,gint16 x,gint16 y);

参数

fixed        固定容器容器构件

widget       要放在固定容器构件中的构件

x            放置的横坐标

y            放置的纵坐标

返回值

      

      

 gtk_fixed_move函数将指定构件移动到新位置。

 

8

名称:

gtk_fixed_move

功能

移动固定容器构件里的构件到指定位子

头文件

#include

函数原形

void gtk_fixed_move(GtkFixed *fixed,GtkWidget *widget,gint16 x,gint16 y);

参数

fixed        固定容器构件

widget       要放在固定容器构件中的构件

x            放置的横坐标

y            放置的纵坐标

返回值

      

 

 

 

 

 

 

 

下面是固定构件的程序例子:

#include

 

GtkWidget *window;/*定义窗体*/

GtkWidget *fixed;/*定义固定容器构件*/

GtkWidget *button;/*定义按钮*/

gint function(gpointer data);

gpointer data;

gint sign;

int x=0;

int y=0;

 

int main(int argc,char *argv[ ])

{

gtk_init(&argc,&argv);/*初始化*/

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);/*创建窗体*/

gtk_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL);

fixed=gtk_fixed_new();/*创建固定容器构件*/

button=gtk_button_new_with_label(“button”);/*创建按钮*/

gtk_fixed_put(GTK_FIXED(fixed),button,10,10);/*将按纽放在固定容器构件的指定位置*/

 

sign=g_timeout_add(600,function,data);/*创建定时器*/

gtk_container_add(GTK_CONTAINER(window),fixed);/*把固定容器构件放入窗体*/

gtk_widget_show(fixed);

gtk_widget_show(button);

gtk_widget_show(window);

gtk_main();

}

 

gint function(gpointer data)

{

gtk_fixed_move(GTK_FIXED(fixed),button,++x,++y);/*移动按纽*/

return TRUE;

}

       程序运行后得到如下的窗体:

       窗体每隔600毫秒便会扩大一次。

阅读(629) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~