文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>GTK+图形化应用程序开发学习笔记(十五)—日历构..

GTK+图形化应用程序开发学习笔记(十五)—日历构..

时间:2007-06-10  来源:湖光倒影

4.

名称::

gtk_calendar_select_month

gtk_calendar_select_day

功能:

选择的日期构件的日期

头文件:

#include <gtk/gtk.h>

函数原形:

gint gtk_calendar_select_month( GtkCalendar *calendar,guint month, guint year );

void gtk_calendar_select_day( GtkCalendar *calendar, guint day );

参数:

calendar    日历构件

month      月份

year        年

day         日

返回值:

成功返回TRUE,错误返回FALSE

      

 

 

 

 

 

 

 

 

   gtk_calendar_select_month( )的返回值是一个布尔值,指示设置是否成功。如果设置一个非法值则会返回一个FALSE值。

使用gtk_calendar_select_day ( )函数,如果d a y参数指定的日期是合法的,会在日历构件中选中该日期。

 

好了我们要体验一下上面两个函数的作用:

#include <gtk/gtk.h>

 

int main(int argc,char *argv[ ])

{

GtkWidget *window;

GtkWidget *calendar;

 

gtk_init(&argc,&argv);

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL);

calendar=gtk_calendar_new();

gtk_calendar_display_options(GTK_CALENDAR(calendar),GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES|GTK_CALENDAR_SHOW_WEEK_NUMBERS|GTK_CALENDAR_WEEK_START_MONDAY);

gtk_calendar_select_month(GTK_CALENDAR(calendar),8,1985);

gtk_calendar_select_day(GTK_CALENDAR(calendar),8);

gtk_container_add(GTK_CONTAINER(window),calendar);

 

gtk_widget_show(calendar);

gtk_widget_show(window);

gtk_main();

}

程序运行后会显示如下窗体:

 

 

除了可以选中一个日期以外,在一个月中可以有任意个日期被“标记”。被“标记”的日期会在日历构件中高亮显示。函数gtk_calendar_mark_day用于标记日期,函数gtk_calendar_unmark_day用于取消标记。注意,在月份和年份变化时,被标记的日期是不会变化的。

 

4.

名称::

gtk_calendar_mark_day

gtk_calendar_unmark_day

gtk_calendar_clear_marks

功能:

标记/取消标记/清除标记

头文件:

#include <gtk/gtk.h>

函数原形:

gint gtk_calendar_mark_day( GtkCalendar *calendar,guint day);

gint gtk_calendar_unmark_day( GtkCalendar *calendar,guint day);

void gtk_calendar_clear_marks( GtkCalendar *calendar);

参数:

calendar    日历构件

day         日

返回值:

成功返回TRUE,错误返回FALSE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.

名称::

gtk_calendar_get_date

功能:

取得当前选中的年/月/日

头文件:

#include <gtk/gtk.h>

函数原形:

void gtk_calendar_get_date( GtkCalendar *calendar,guint *year,guint *month,guint *day );

参数:

calendar    日历构件

month      月份

year        年

day         日

返回值:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

gtk_calendar_get_date可以取得当前选中的年/月/日。在使用这个函数时,需要先声明几个guint类型的变量—传递给函数的year、month和day参数。所需要的返回值就存放在这几个变量中。如果将某一个参数设置为NULL,则不返回该值。

 

#include <gtk/gtk.h>

 

GtkWidget *calendar;

 

void button_event(GtkWidget *widget, gpointer *data);

int main(int argc,char *argv[ ])

{

GtkWidget *window;

GtkWidget *box;

GtkWidget *button;

 

gtk_init(&argc,&argv);

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL);

box=gtk_vbox_new(FALSE,10);/*建立组装盒*/

gtk_container_add(GTK_CONTAINER(window),box);/*将组装盒加入窗体*/

 

calendar=gtk_calendar_new();/*建立日历构件

gtk_box_pack_start(GTK_BOX(box),calendar,TRUE,TRUE,5);/*将日历构件加入组装盒*/

gtk_widget_show(calendar);/*显示日历构件*/

 

button=gtk_button_new_with_label(“确定”);

gtk_box_pack_start(GTK_BOX(box),button,TRUE,TRUE,0);

gtk_signal_connect(GTK_OBJECT(button),”clicked”,GTK_SIGNAL_FUNC(button_event),NULL);

gtk_widget_show(button);

 

gtk_widget_show(box);

gtk_widget_show(window);

gtk_main();

}

 

void button_event(GtkWidget *widget,gpointer *data)

{

guint year;

guint month;

guint day;

 

gtk_calendar_get_data(GTK_CALENDAR(calendar),&year,&month,&day);/*取得选择的年月日*/

g_print(“Year:%d Month:%d Day:%d\n”,year,month,day);

}

程序运行后得到如下窗体,当点击确定时程序打印选择的年月日。

 

日历构件还有一些信号它们是:

month_changed  /*选择月份变化* /

day_selected  /*选择日期变化* /

day_selected_double_click /*选中日期并以鼠标双击* /

prev_month  /*选择前一月* /

next_month  /*选择下一月* /

prev_year  /*选择前一年* /

next_year  /*选择下一年* /

 

相关阅读 更多 +
排行榜 更多 +
特技摩托挑战(wheelie challenge)

特技摩托挑战(wheelie challenge)

赛车竞速 下载
创造世界游戏

创造世界游戏

冒险解谜 下载
终极躲避球

终极躲避球

休闲益智 下载