GTK+2 信号--HelloWorld

简介:
/*HelloWorld程序*/
 
#include <gtk/gtk.h>         

/*回调函数*/  
void  hello( GtkWidget *widget, gpointer data )

g_print( "Hello World\n" );
}

/*回调函数--关闭按钮事件处理*/  
gint delete_event( GtkWidget *widget, GdkEvent * event , gpointer data )
{
g_print ( "delete event occurred\n" ); 
return (TRUE); /*返回TRUE表示不关闭窗口*/  
}

/*回调函数*/  
void  destroy( GtkWidget *widget, gpointer data )
{
gtk_main_quit();
}
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),  "delete_event" ,
                                     GTK_SIGNAL_FUNC (delete_event), NULL);  /*连接信号与回调函数*/      
g_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 World" );  /*创建一个带标签的按钮*/  
     
/*hello按扭单击处理*/  
g_signal_connect(GTK_OBJECT (button),  "clicked" ,GTK_SIGNAL_FUNC(hello), NULL);        
g_signal_connect_swapped(GTK_OBJECT(button), "clicked" ,
                                                    GTK_SIGNAL_FUNC(gtk_widget_destroy),GTK_OBJECT(window));        
gtk_container_add (GTK_CONTAINER (window), button);        
gtk_widget_show (button);             
gtk_widget_show (window);             
gtk_main (); /*主循环*/                 
return  0;

}






 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/123236,如需转载请自行联系原作者


相关文章
|
小程序 JavaScript
【微信小程序】之顶部选项卡自定义tabs(不用mp-tabs扩展组件,太难用了)
【微信小程序】之顶部选项卡自定义tabs(不用mp-tabs扩展组件,太难用了)
|
自然语言处理 JavaScript 前端开发
一文了解HarmonyOS系统架构
HarmonyOS是一款面向 万物互联时代的、全新分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于`同一套系统能力`、`适配多种终端形态`的分布式理念。能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。
3076 0
一文了解HarmonyOS系统架构
|
SQL Java
如何使用阿里云短信服务实现登录页面,手机验证码登录?1
如何使用阿里云短信服务实现登录页面,手机验证码登录?
780 0
|
9月前
|
存储 机器学习/深度学习 人工智能
《Python 助力:人工智能模型的“瘦身”与“加速”之旅》
在人工智能蓬勃发展的今天,深度学习模型的规模和复杂度不断增加,导致存储需求大、计算资源消耗过多及推理速度受限等问题。为此,模型压缩(如剪枝、低秩分解)和量化技术应运而生,通过减少参数数量或降低精度,在不显著影响性能的前提下,优化存储和计算效率。Python 作为主流编程语言,在这些技术的实现与优化中发挥重要作用,借助 TensorFlow 和 PyTorch 等框架,开发者可以方便地进行模型压缩和量化操作。这些技术不仅提高了模型在边缘设备上的运行效率,还降低了数据中心的存储和能耗成本,推动了人工智能的广泛应用。
256 82
|
11月前
|
网络协议 网络架构
|
缓存 监控 Linux
在Linux中,如何设计一个高性能的Web服务器?
在Linux中,如何设计一个高性能的Web服务器?
|
缓存 算法 Java
刷算法,你应该知道的队列经典应用
文章介绍了队列的基本特性和经典应用,包括如何用队列实现栈、使用优先级队列解决Top K问题,并通过LeetCode题目示例展示了队列在算法实现中的应用。
刷算法,你应该知道的队列经典应用
|
设计模式 编解码 API
Flutter UI设计模式与实现:深入探索与实践
【7月更文挑战第20天】Flutter以其独特的声明式UI模式和丰富的UI组件库,为移动应用开发提供了强大的支持。通过深入理解Flutter的UI设计模式和实现技巧,开发者可以构建出高性能、可维护性强的UI界面。同时,随着Flutter生态的不断完善和发展,相信未来Flutter将在移动应用开发领域发挥更加重要的作用。
|
关系型数据库 MySQL 应用服务中间件
Yuque
语雀(Yuque)是一款在线的知识管理与文档协作工具,类似于GitHub上的Wiki或者Confluence。
3335 1