您的位置:首页 > 其它

第一个GTK程序:中国农历 之一

2013-04-20 19:29 471 查看
这个程序就是使用lunar-calendar控件,然后显示出农历来。

先用glade-2画出一个日历窗口,设置窗口的销毁事件为调用gtk_main_quit函数,设置一下窗口图标,然后生成代码

生成并修改后的interface.c文件

/*
* DO NOT EDIT THIS FILE - it is generated by Glade.
*/

#ifdef HAVE_CONFIG_H
#  include <config.h>
#endif

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>

#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include <lunar-calendar/lunar-calendar.h>

#include "callbacks.h"
#include "interface.h"
#include "support.h"

#define GLADE_HOOKUP_OBJECT(component,widget,name) \
g_object_set_data_full (G_OBJECT (component), name, \
gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)

#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
g_object_set_data (G_OBJECT (component), name, widget)

GtkWidget*
create_lunarcalendar (void)
{
GtkWidget *lunarcalendar;
GdkPixbuf *lunarcalendar_icon_pixbuf;
GtkWidget *calendar1;

lunarcalendar = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_name (lunarcalendar, "lunarcalendar");
gtk_window_set_title (GTK_WINDOW (lunarcalendar), _("Lunar Calendar"));
lunarcalendar_icon_pixbuf = create_pixbuf ("lunarcalendar.png");
if (lunarcalendar_icon_pixbuf)
{
gtk_window_set_icon (GTK_WINDOW (lunarcalendar), lunarcalendar_icon_pixbuf);
gdk_pixbuf_unref (lunarcalendar_icon_pixbuf);
}

calendar1 = lunar_calendar_new ();
gtk_widget_set_name (calendar1, "calendar1");
gtk_widget_show (calendar1);
gtk_container_add (GTK_CONTAINER (lunarcalendar), calendar1);
gtk_calendar_display_options (GTK_CALENDAR (calendar1),
GTK_CALENDAR_SHOW_HEADING
| GTK_CALENDAR_SHOW_DAY_NAMES
| GTK_CALENDAR_NO_MONTH_CHANGE
| GTK_CALENDAR_SHOW_WEEK_NUMBERS);

g_signal_connect ((gpointer) lunarcalendar, "destroy",
G_CALLBACK (gtk_main_quit),
NULL);

/* Store pointers to all widgets, for use by lookup_widget(). */
GLADE_HOOKUP_OBJECT_NO_REF (lunarcalendar, lunarcalendar, "lunarcalendar");
GLADE_HOOKUP_OBJECT (lunarcalendar, calendar1, "calendar1");

return lunarcalendar;
}


到此,我们完成了第一步,生成代码

代码压缩为:lunarcalendar.0.0.1.zip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: