您的位置:首页 > 其它

gtk 事件信号,和回调

2011-04-02 17:40 288 查看
#include<gtk/gtk.h>
void hello(GtkWidget *widget,gpointer data)
{
g_print("Hello Ubuntu!/n");
}
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
g_print ("delete event occurred/n");
gtk_main_quit();
return(TRUE);
}
void destroy(GtkWidget *widget,gpointer data)
{
gtk_main_quit();
}
int main( int argc, char *argv[] )
{
GtkWidget *hbox;
GtkWidget *window;
GtkWidget *button;
GtkWidget *buttonclose;
gtk_init (&argc, &argv);
window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello Ubuntu!11111111111111111111111111111111111");
buttonclose=gtk_button_new_with_label("close");
gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);
gtk_signal_connect_object (GTK_OBJECT (buttonclose), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));
// gtk_container_add (GTK_CONTAINER (window), button);

hbox=gtk_hbox_new (TRUE,5);
gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox),buttonclose,TRUE,FALSE,5);
gtk_container_add (GTK_CONTAINER(window),hbox);
/*  gtk_widget_show(buttonclose);
gtk_widget_show (button);
gtk_widget_show (hbox);
gtk_widget_show (window);   /*显示一个窗口*/
gtk_widget_show_all(window);
gtk_main();   /*进入主循环*/
return(0);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: