对话框构件--退出时_yes_no

本文详细介绍了GTK对话框构件的创建方法及使用过程,通过示例代码展示了如何创建包含按钮的对话框,并实现不同的按钮点击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、对话框构件
       对话框构件非常简单,事实上他仅仅是个预先组装了几个构件到里面的窗口。对话框的定义如下:
       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对话框消失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值