• 大小: 7.9 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-09-07
  • 语言: 其他
  • 标签: GTK    

资源简介

在Linux下使用GTK编程实现数字表显示系统当前时间,由可执行文件,时间正确。不过可能有些单调,不那么好看。

资源截图

代码片段和文件信息

#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


评论

共有 条评论