设为首页 加入收藏

TOP

12.6.3 生成对话框
2013-10-12 06:47:36 来源: 作者: 【 】 浏览:103
Tags:12.6.3 生成 对话

12.6.3  生成对话框

对话框GtkDialog是GtkWindow的子类,它可以使用所有GtkWindow的函数。创建对话框的函数是:

GtkWidget *gtk_dialog_new(void)

运行下面的程序例12-7,显示主窗口,主窗口中有一个按钮,单击该按钮生成一个对话框。

例12-7  创建对话框,程序名为dialog.c。

#include<gtk/gtk.h>
void make_dialog()
{
GtkWidget *dialog;
GtkWidget *label;
GtkWidget *button;
GtkWidget *vbox;
GtkWidget *hbox;

dialog = gtk_dialog_new();

/*向对话框中加入一个文本标签*/
vbox = GTK_DIALOG(dialog)->vbox;
label = gtk_label_new("This is a dialog");
gtk_box_pack_start(GTK_BOX(vbox),label,TRUE,TRUE,30);

/*向对话框中加入两个按钮*/
hbox = GTK_DIALOG(dialog)->action_area;
button = gtk_button_new_with_label("yes");
gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
button = gtk_button_new_with_label("no");
gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);

gtk_widget_show_all(dialog);
}
void hello(GtkWidget *widget,gpointer *data)
{
make_dialog();
}
int main(int argc,char **argv)
{
GtkWidget *window;
GtkWidget *button;

gtk_init(&argc,&argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(GTK_OBJECT(window),"destroy",
GTK_SIGNAL_FUNC(gtk_main_quit),NULL);
gtk_container_border_width(GTK_CONTAINER(window),20);

button = gtk_button_new_with_label("Hello World");
g_signal_connect(GTK_OBJECT(button),"clicked",
GTK_SIGNAL_FUNC(hello),"I am from button");

gtk_container_add(GTK_CONTAINER(window),button);
gtk_widget_show(button);
gtk_widget_show(window);

gtk_main();

return 0;
}

程序运行后的界面如图12-8所示。

图12-8  运行结果界面

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇12.7 进一步学习建议 下一篇12.6.4 使用菜单

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: