嵌入式GUI开发:GTK+图形界面库 GTK入门之第一个窗口
嵌入式GUI开发:GTK+图形界面库GTK入门之第一个窗口
·
包含头文件 #include
主函数 main
环境初始化 gtk_init
创建窗口 gtk_window_new
设置窗口属性 gtk_widget_set_size_request
gtk_window_set_resizable
gtk_window_set_title
gtk_window_set_position
创建按钮 gtk_button_new_width_label
将按钮放到窗口中去 gtk_container_add
显示窗口所有内容 gtk_widget_show_all
信号连接 g_singnal_connect
主事件循环 gtk_main
编辑运行 gcc xxx.c `pkg-config --cflags --libs gtk+-2.0`
#include <gtk/gtk.h>
#include <stdio.h>
void my_haha(GtkButton *button,gpointer user_data);
int main(int argc, char *argv[])
{
//环境初始化
gtk_init(&argc,&argv);
//创建窗口
GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//设置窗口属性
gtk_widget_set_size_request(window,600,400);
gtk_window_set_resizable(GTK_WINDOW(window),FALSE);
gtk_window_set_title(GTK_WINDOW(window),"first");
gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER_ALWAYS);
//创建一个按钮
GtkWidget* button = gtk_button_new_with_label("请戳我");
//将按钮放到窗口去
gtk_container_add(GTK_CONTAINER(window),button);
//显示这个窗口
gtk_widget_show_all(window);
//信号连接
g_signal_connect(window,"destory",G_CALLBACK(gtk_main_quit),NULL);
g_signal_connect(button,"pressed",G_CALLBACK(my_haha),"疼");
//主事件循环
gtk_main();//让这个窗口一直循环刷新,停在这个界面上等待信号
return 0;
}
//gtk的强制类型转换:我们使用需求函数的前两个英文单词大写作为函数名称
//参数就是你要强转的变量
//返回值就是你的强转结果
void my_haha(GtkButton* button,gpointer user_data)
{
//1、zhijiedayin
printf("haha\n");
//2、可以打印按钮上面的文本内容
const char* haha = gtk_button_get_label(button);
printf("%s\n",haha );
//3、我们还可以打印传递给回电函数的参数
printf("%s\n",(char *)user_data );
}
更多推荐
所有评论(0)