我正在计划为gtk制作一个不和谐的日历小部件。自70年代以来,在Linux中默认使用Discordian日历。现在它出现在大多数发行版中。你可以在终端输入“ddate”来检查它。 :)
所以我想通过更改现有的日历小部件代码来制作gtk小部件。为了试验它,我想将它放在单独的工作目录中。
我找到了使用常规gtkcalendar.c和gtkcalendar.h的例子,它非常简单,就像那样:
#include <gtk/gtk.h>
我希望将gtkdiscocalendar.c放在与我的example.c相同的工作目录中,以包含它:
#include "gtkdiscocalendar.c"
#include "gtkdiscocalendar.h"
如何从gtk / gtk中正确提取这些文件?他们的标题看起来像这样:
(gtkcalendar.c)
#include "config.h"
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#ifdef HAVE__NL_TIME_FIRST_WEEKDAY
#include <langinfo.h>
#endif
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <glib.h>
#ifdef G_OS_WIN32
#include <windows.h>
#endif
#include "gtkcalendar.h"
#include "gtkdnd.h"
#include "gtkdragdest.h"
#include "gtkintl.h"
#include "gtkmain.h"
#include "gtkmarshalers.h"
#include "gtktooltip.h"
#include "gtkprivate.h"
#include "gtkrendericonprivate.h"
#include "gtksnapshot.h"
#include "gtkstylecontextprivate.h"
(gtkcalendar.h)
#include <gtk/gtkwidget.h>
我的方法是否正确?或者也许我应该自己克隆整个gtk,而不是修改它并将其安装在我的电脑上?这是我第一次使用gtk,所以我不想弄乱我的系统。另外,我不是训练有素的程序员,所以也许这些都是基本的问题。我非常感谢答案:)
答案 0 :(得分:0)
gtkcalendar.c是一个由框架提供的小部件,包含将不同于那些为了自己的目的而继承GtkWidget / GObject或派生类的子类。
在C语言中对GObject或GtkWidgets进行子类化,对于新手来说非常冗长且容易出错。您可能想尝试其他语言绑定,例如Vala,Python甚至Javascript。
自定义小工具:
有很多关于GNOME Developer website
的信息