Chinaunix首页 | 论坛 | 博客
  • 博客访问: 668107
  • 博文数量: 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:44:51

一、对话框构件

       对话框构件非常简单,事实上它仅仅是一个预先组装了几个构件到里面的窗口。对话框的定义如下:

       struct GtkDialog{

GtkWindow window;

GtkWidget *vbox;

GtkWidget *action_area;

};

从上面可以看到,对话框只是简单地创建一个窗口,并在顶部组装一个G t k V B o x,然后在G t k V B o x中组装一个分隔线,再加一个称为“活动区”的G t k H B o x。我们可以在该“活动区”添加一些按纽。

 

       对话框用gtk_dialog_new创建。

1

名称:

gtk_dialog_new

功能

创建对话框构件

头文件

#include

函数原形

GtkWidget *gtk_dialog_new(void);

参数

返回值

新的对话框构件

 

 

 

 

 

 

 

 

 

 

#include

 

void button_event(GtkWidget *widget, gpointer *data);

void destroy(GtkWidget *widget, gpointer *data);

 

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

{

GtkWidget *window;

GtkWidget *button;

 

gtk_init(&argc,&argv);

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

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

 

button=gtk_button_new_with_label(“Exit”);

gtk_container_add(GTK_CONTAINER(window),button);

gtk_signal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(button_event),NULL);

gtk_widget_show(button);

gtk_widget_show(window);

gtk_main();

}

 

void button_event(GtkWidget *widget, gpointer *data)

{

GtkWidget *button;

GtkWidget *dialog;

 

dialog=gtk_dialog_new( );

 

button=gtk_button_new_with_label(“Yes”);

gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),button,TRUE,TRUE,0);

gtk_signal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(gtk_main_quit),NULL);

gtk_widget_show(button);

 

button=gtk_button_new_with_label(“No”);

gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),button,TRUE,TRUE,0);

gtk_signal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(destroy),dialog);

gtk_widget_show(button);

gtk_widget_show(dialog);

}

 

void destroy(GtkWidget *widget, gpointer *data)

{

gtk_widget_destroy(GTK_WIDGET(data));

}

 

       程序运行后会得到如下界面:

       当用户点击按纽会得到如下对话框。

       如果用户电击Yes程序退出,如果用户点击No对话框消失。

 

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