在 VSCode 中:Label标签中添加时间显示
·
一、效果图展示
显示的是实际时间

二、代码
1.在events_init.c中添加代码如下:
static void main_screen_event_handler (lv_event_t *e)
{
lv_event_code_t event_code = lv_event_get_code(e);
if(event_code == LV_EVENT_SCREEN_LOADED) {
// 屏幕加载时启动时间更新
start_time_update();
} else if(event_code == LV_EVENT_SCREEN_UNLOADED) {
// 屏幕卸载时停止时间更新
stop_time_update();
}
}
//此处代码省略///////////////
// 在自定义变量区域声明定时器指针
static lv_timer_t *time_update_timer = NULL;
// 更新时间显示的函数
static void update_time_display(lv_timer_t *timer)
{
time_t rawtime;
struct tm *timeinfo;
char buffer[64];
time(&rawtime);
timeinfo = localtime(&rawtime);
// 格式化时间显示,可以根据需要调整格式
// strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo);
strftime(buffer, sizeof(buffer), "%H:%M", timeinfo);
// 更新label显示 - 确保ui_LabelTime与你的label对象名一致
lv_label_set_text(guider_ui.main_screen_label_time, buffer);
}
// 启动时间更新
void start_time_update(void)
{
if(time_update_timer == NULL) {
time_update_timer = lv_timer_create(update_time_display, 1000, NULL); // 1000ms = 1秒
// 立即更新一次显示,避免初始空白
update_time_display(NULL);
}
}
// 停止时间更新
void stop_time_update(void)
{
if(time_update_timer != NULL) {
lv_timer_del(time_update_timer);
time_update_timer = NULL;
}
}
2.在events_init.h中添加函数声明
void start_time_update();
void stop_time_update();
更多推荐


所有评论(0)