静思夜 发表于 2016-4-17 12:36:15

Tizen移动应用Datetime组件设置方法

此功能只支持移动应用程序。
datetime组件显示日期和时间值。
有关更多信息,请参见 Datetime API。
图Datetime组件
图Datetime层次结构
添加一个Datetime组件
创建一个datetime组件:

1.添加组件的datetime elm_datetime_add() ()功能:Evas_Object *datetime, *parent;

datetime = elm_datetime_add(parent);
2.选择字段的可见 elm_datetime_field_visible_set() ()函数。
以下字段的可见性可以控制:

ELM_DATETIME_YEAR :年字段
ELM_DATETIME_MONTH :月字段
ELM_DATETIME_DATE :日期字段
ELM_DATETIME_HOUR :小时字段
ELM_DATETIME_MINUTE :一分钟字段
ELM_DATETIME_AMPM :上午/下午场
设置 小时 和 一分钟 字段可见:elm_datetime_field_visible_set(datetime, ELM_DATETIME_HOUR, EINA_TRUE);
elm_datetime_field_visible_set(datetime, ELM_DATETIME_MINUTE, EINA_TRUE);

elm_datetime_field_visible_set(datetime, ELM_DATETIME_YEAR, EINA_FALSE);
elm_datetime_field_visible_set(datetime, ELM_DATETIME_MONTH, EINA_FALSE);
elm_datetime_field_visible_set(datetime, ELM_DATETIME_DATE, EINA_FALSE);
elm_datetime_field_visible_set(datetime, ELM_DATETIME_AMPM, EINA_FALSE);
使用Datetime风格
datetime有以下方式:

date_layout
time_layout
time_layout_24hr
例如,设置风格 date_layout :elm_object_style_set(datetime, "date_layout");注意:
注意下面的用户体验问题自Tizen 2.3:
的 elm_datetime 组件需要一个完整的格式,包括一年,月,日,小时,分钟和AM / PM。 每个样式显示特定字段的格式,限制了用户体验的概念:

date_layout (默认):年、月、日
time_layout :小时,分钟,AM / PM按钮
time_layout_24hr :小时,分钟
如果你所说的 elm_datetime_field_visible_set() ()函数的字段不支持在当前风格,功能不工作。

设置日期时间格式
日期和时间格式可以配置 elm_datetime_format_set() ()函数使用的组合允许Libc日期格式说明符。

设置格式“DD MM YY”:elm_datetime_format_set(datetime, "%d%B%Y");
说明符可用的完整列表,请参阅 Datetime API。

使用Datetime值
日期和时间的值可以设置和检索 elm_datetime_value_set() ()和 elm_datetime_value_get() ()函数使用一个 tm 结构和相关的api。

当地时间设置的datetime值:time_t local_time = time(NULL);
struct tm *time_tm = localtime(&local_time);
struct tm t = *time_tm;

elm_datetime_value_set(datetime, &t);
检索和打印的datetime值当前日期:
struct tm t;

elm_datetime_value_get(datetime, &t);

printf("%d %d %d", t.tm_mday, t.tm_mon, t.tm_year);

使用Datetime回调
对datetime接收通知事件,听以下信号:

改变了 :datetime字段值发生了改变。
语言,改变了 ,changed:系统语言环境的变化。
注意:
在API参考信号列表可以更广泛,但只有上面的信号实际上是支持Tizen。
在这两个信号 event_info 回调参数是 零 。

登记和定义一个回调 改变了 信号:{
   evas_object_smart_callback_add(datetime, "changed", changed_cb, data);
}

// Callback for the "changed" signal
// Called when the datetime fields change
void
changed_cb(void *data, Evas_Object *obj, void *event_info)
{
   dlog_print(DLOG_INFO, LOG_TAG, "Datetime field changed. \n");
}注意:除了如上所述,这下许可的内容 LGPLv2.1 +。
页: [1]
查看完整版本: Tizen移动应用Datetime组件设置方法