資源簡介
在Linux下使用GTK編程實現(xiàn)數(shù)字表顯示系統(tǒng)當前時間,由可執(zhí)行文件,時間正確。不過可能有些單調(diào),不那么好看。
代碼片段和文件信息
#include?????
#include?????
#include?????
//#include?“nano-X.h“????
//#include?“desktop.h“????
???
#define?SCREEN_WIDTH?320????
#define?SCREEN_HEIGHT?480????
#define?TASKBAR_HEIGHT?26????
#define?WINDOW_WIDTH?SCREEN_WIDTH????
#define?WINDOW_HEIGHT?(SCREEN_HEIGHT?-?TASKBAR_HEIGHT)????
???
#if?USE_SIGNAL????
#include?????
#endif????
???
void?quit?()???
{???
????gtk_exit?(0);???
}???
???
???
gint?Repaint?(gpointer?data)???
{???
????GtkWidget*??drawing_entry?=?(GtkWidget?*)?data;???
????int?midx?midy;???
????int?nHour;???
????float?dRadians;???
????time_t?now;???
????struct?tm?*now_tm;???
???gchar?buf[10];???
???
????/*?---?Get?drawing?area?window?---?*/???
??????
????/*?---?Get?Time?---?*/???
????time?(&now);???
???
????/*?---?Convert?time?---?*/???
????now_tm?=?localtime?(&now);???
???
????/*???
?????*?---?Draw?the?second?hand??
?????*/???
???
//time?(&t1);????
????/*?---?Get?radians?from?seconds?---?*/???
????gint?second?=?now_tm->tm_sec;???
???gint?minute?=?now_tm->tm_min;???
???gint?hour?=?now_tm->tm_hour;???
???printf(“000&&&%d%d%d\n“hourminutesecond);???
???sprintf(buf“%d:%d:%d“hourminutesecond);???
???gtk_entry_set_text(GTK_ENTRY(drawing_entry)buf);???
???????
????/*???
?????*?---?Draw?the?minute???
?????*/???
???
????/*?---?Get?radians?from?minutes?and?seconds?---?*/???
??????
???
????return?(TRUE);???
}???
???
???
int?main?(int?argc?char?*argv[])???
???
{???
????GtkWidget?*window;???
????GtkWidget?*vbox;???
???
????/*?---?Initialize?GTK?---?*/???
????gtk_set_locale();???
????gtk_init?(&argc?&argv);???
???
????/*?---?Create?a?top?level?window?---?*/???
????window?=?gtk_window_new?(GTK_WINDOW_TOPLEVEL);???
????gtk_widget_set_usize?(window?WINDOW_WIDTH?WINDOW_HEIGHT);???
???
????/*?---?Get?a?packing?box?---?*/???
????vbox?=?gtk_hbox_new?(FALSE?0);???
???
????/*?---?Add?packing?box?to?window?---?*/???
????gtk_container_add?(GTK_CONTAINER?(window)?vbox);???
???
????/*?---?Make?packing?box?visible?---?*/???
????gtk_widget_show?(vbox);???
???
????/*?---?Listen?for?the?destroy?---?*/???
????gtk_signal_connect?(GTK_object?(window)?“destroy“???
????????????????GTK_SIGNAL_FUNC?(quit)?NULL);???
????????GtkWidget?*entry?=?gtk_entry_new();???
????????gtk_entry_set_editable??(GTK_ENTRY(entry)TRUE);????
????????gtk_entry_set_width_chars?(GTK_ENTRY(entry)?34);???
????????gtk_box_pack_start(GTK_BOX(vbox)entryFALSETRUE0);???
????????gtk_entry_set_alignment?(GTK_ENTRY?(entry)?0.5f);???
???????????
????????Repaint(entry);???
????gtk_timeout_add?(1000?Repaint?(gpointer)?entry);???
???????
????????gtk_widget_show(entry);???
????????gtk_widget_show(window);????
??????????gtk_main?();???
????return?0;?????????
}????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????16609??2009-08-20?11:03??clock
?????文件???????2822??2009-08-20?11:03??clock.c
-----------?---------??----------?-----??----
????????????????19431????????????????????2
評論
共有 條評論