- 论坛徽章:
- 0
|
福珑2f盒子上编写gtk窗口helloworld程序
盒子是rays2.0系统,属于一个类debian的发行版,拿到盒子后就测试了一下gtk编程,下面写了一个简单的hello world程序。
先安装 libgtk2.0-dev
编写程序文件 gtkhello.c
------------------------------
/* -*-coding: utf-8;-*- */
/* gtkhello.c -- traditional GTK+ Hello program */
#include
void hello(GtkWidget *widget, gpointer data)
{
g_print("Hello, World!\n");
}
/* standard event handlers */
gint delete_event(GtkWidget *widget, GdkEvent event, gpointer data)
{
/* when this function returns FALSE, the delete-event
* signal becomes a destroy signal */
return FALSE;
}
void end_program(GtkWidget *widget, gpointer data)
{
/* End the main loop */
gtk_main_quit();
}
int main(int argc, char **argv)
{
GtkWindow *window;
GtkButton *button;
/* Initialize GTK+ */
gtk_init(&argc, &argv);
/* create window, set default height and width to 200 pixels */
window = g_object_new(GTK_TYPE_WINDOW,
"default-height", 200,
"default-width", 200,
"border-width", 12,
"title", "GtkHello",
NULL);
/* add signal handlers for window */
g_signal_connect(window,
"delete-event", G_CALLBACK(delete_event),
NULL);
g_signal_connect(window,
"destroy", G_CALLBACK(end_program),
NULL);
/* create a button */
button = g_object_new(GTK_TYPE_BUTTON,
"label", "_Hello, World!\nClick Here.",
"use-underline", TRUE,
NULL);
/* install signal handlers for button */
g_signal_connect(button,
"clicked", G_CALLBACK(hello),
NULL);
g_signal_connect_swapped(button,
"clicked", G_CALLBACK(gtk_widget_destroy),
window);
/* pack the button into the window, show all of its contents */
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(button));
gtk_widget_show_all(GTK_WIDGET(window));
/* start main event loop */
gtk_main();
return 0;
}
保存文件执行下列命令编译该程序
gcc gtkhello.c -o gtkhello `pkg-config --cflags --libs gtk+-2.0`
编译完成后生成目标gtkhello程序。
输入./gtkhello启动该程序
![]()
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11872/showart_728852.html |
|