一、效果图展示

显示的是实际时间

二、代码

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();

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐