GTK编程:button控件与消息事件
Posted wonxxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GTK编程:button控件与消息事件相关的知识,希望对你有一定的参考价值。
实现功能:没什么特定功能,只是为了熟悉一下button控件和消息事件而已(弥补上一个程序没有实现的消息事件)
/* File: button_hello.c
* Date: Tue Mar 24 14:58:06 HKT 2015
* Describe: a simple button show
* Autor: won
*/
#include <gtk/gtk.h>
#include <stdio.h>
//这是一个回调函数,触发时会在终端打印信息
void hello(GtkWidget *widget, gpointer *data)
g_print("data from button: %s\\n", (char *)data);
//这是一个回调函数,用来响应关闭信号
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), "destroy",
GTK_SIGNAL_FUNC(destroy), 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), "button message");
//将按钮加入到窗口中
gtk_container_add(GTK_CONTAINER(window), button);
//显示窗体和按钮
gtk_widget_show(button);
gtk_widget_show(window);
//进入消息处理循环
gtk_main();
return 0;
主要是g_signal_connect()函数,原型如下:
#define g_signal_connect(instance, detailed_signal, c_handler, data)
编译:
gcc button_hello.c -o button_hello `pkg-config --cflags --libs gtk+-2.0`
运行效果:
按下按键的时候会打印:
$ ./button_hello
data from button: button message
以上是关于GTK编程:button控件与消息事件的主要内容,如果未能解决你的问题,请参考以下文章
用Jquery的append事件动态添加控件,点击添加时会清空原来动态控件中的值。是啥原因?
MFC编程入门之二十一(常用控件:编辑框Edit Control)