- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《GTK详解给那些刚接触的
用 GTK 来写 Hello World好,现在来写一个只有一个按钮构件的程序,这是一个标准的 GTK Hello World。?#include gtk/gtk.h/* 这是一个回调函数。data 参数在本示例中被忽略。?* 后面有更多的回调函数示例。*/void hello( GtkWidget *widget, gpointer?? data ){ g_print (Hello World\n);}gint delete_event( GtkWidget *widget, GdkEvent? *event, gpointer?? data ){ /* 如果你的 delete_event 信号处理函数返回 FALSE,GTK 会发出 destroy 信号。 * 返回 TRUE,你不希望关闭窗口。 * 当你想弹出“你确定要退出吗?”对话框时它很有用。*/ g_print (delete event occurred\n); /* 改 TRUE 为 FALSE 程序会关闭。*/ return TRUE;}/* 另一个回调函数 */void destroy( GtkWidget *widget, gpointer?? data ){ gtk_main_quit ();}int main( int?? argc, char *argv[] ){ /* GtkWidget 是构件的存储类型 */ GtkWidget *window; GtkWidget *button; /* 这个函数在所有的 GTK 程序都要调用。参数由命令行中解析出来并且送到该程序中*/ gtk_init (argc, argv); /* 创建一个新窗口 */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* 当窗口收到 delete_event 信号 (这个信号由窗口管理器发出,通常是“关闭” * 选项或是标题栏上的关闭按钮发出的),我们让它以上面定义的形式调用 delete_event() 函数。 * 传给回调函数的 data 参数值是 NULL,它会被回调函数忽略。*/ g_signal_connect (G_OBJECT (window), delete_event, G_CALLBACK (delete_event), NULL); /* 在这里我们连接 destroy 事件到处理函数。? * 调用 gtk_widget_destroy() 函数或在 delete_event 回调函数中返回?FALSE 值 * 都可以触发 destroy 事件。*/ g_signal_connect (G_OBJECT (window), destroy, G_CALLBACK (destroy), NULL); /* 设置窗口边框的宽度。*/ gtk_container_set_border_width (GTK_CONTAINER (window), 10); /* 创建一个标签为 Hello World 的新按钮。*/ button = gtk_button_new_with_label (Hello World); /* 当收到 clicked 信号时会调用上面定义的 hello() 函数。*/ g_signal_connect (G_OBJECT (button), clicked, G_CALLBACK (hello), NULL); /* 当点击按钮时,会通过调用 gtk_widget_destroy(window) 函数关闭窗口。 * destroy 信号会从这里或从窗口管理器发出。*/ g_signal_connect_swapped (G_OBJECT (button), clicked, G_CALLBACK (gtk_widget_destroy), window); /* 把按钮放入窗口 (gtk 容器) 中。*/ gtk_container_add (GTK_CONTAINER (window), button); /* 最后一步是显示新创建的按钮和窗口 */ gtk_widget_show (button); gtk_widget_show (window); /* 所有的 GTK 程序必须有一个 gtk_main() 函数。程序运行停在这里 * 等待事件 (如键盘事件或鼠标事件) 的发生。*/ gtk_main (); return 0;} ?信号和回调函数的原理?在 2.0 版,信号系统已从 GTK 移到 GLib,因此在函数和类型的说明中有前缀 g_ 而不是 gtk_。我们不打算介绍 GLib 2.0 信号系统相对 GTK 1.2 信号系统扩展的细节。?在我
您可能关注的文档
最近下载
- 2022年考博英语-中国艺术研究院考前模拟强化练习题74(附答案详解).docx VIP
- 山东淄博卷(“暖”起来;从“阅”到乐,悦,跃,月,钥,越……)-2024年中考语文作文真题解读.docx
- 省级优秀课件人教版数学四年级上册第8单元数学广角——优化.pptx
- 四川省成都市2023-2024学年度上学期期末考试高一语文试题(解析版).doc VIP
- 第8课 第一次世界大战(导图上课)公开课教案教学设计课件资料.pptx VIP
- 全自动凯氏定氮仪的工作原理及操作流程.pdf
- 2024中小学校公开招聘简章.pdf
- GB 1499.2-2024钢筋混凝土用钢 第2部分:热轧带肋钢筋-副本.pdf
- 学堂在线海上求生与救生期末考试答案.docx
- 小学美术手工《折纸》ppt课件.pptx
文档评论(0)