Chinaunix首页 | 论坛 | 博客
  • 博客访问: 668096
  • 博文数量: 237
  • 博客积分: 4285
  • 博客等级: 上校
  • 技术积分: 2701
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-15 14:05
文章分类

全部博文(237)

文章存档

2014年(2)

2013年(3)

2012年(47)

2011年(15)

2010年(68)

2009年(102)

我的朋友

分类: 嵌入式

2009-11-26 13:51:08

4

名称:

gtk_calendar_select_month

gtk_calendar_select_day

功能

选择的日期构件的日期

头文件

#include

函数原形

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

 

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

函数原形

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

函数原形

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

参数

calendar    日历构件

month      月份

year       

day        

返回值

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

#include

 

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  /*选择下一年* /

 

阅读(846) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~