lvgl创建矩形,以及刷单色图 - minichao9901/TangNano-20k-Zynq-7020 GitHub Wiki

这里直接用的是chatgpt帮忙写的了


 void create_red_rectangle(uint32_t color)
{
    // 创建一个矩形对象
    lv_obj_t *rect = lv_obj_create(lv_scr_act());

    // 设置矩形的大小和位置
    lv_obj_set_size(rect, 800, 480); // 宽度 800 像素,高度 480 像素
    lv_obj_align(rect, LV_ALIGN_CENTER, 0, 0); // 将矩形居中放置

    // 创建一个样式
    static lv_style_t style;
    lv_style_init(&style);

    // 设置样式的背景颜色为红色
    lv_style_set_bg_color(&style, lv_color_hex(color)); // 红色
    lv_style_set_bg_opa(&style, LV_OPA_COVER); // 完全不透明

    // 将样式应用到矩形
    lv_obj_add_style(rect, &style, 0);
}


int main()
{
....
....


    uint32_t loop_cnt=0;
    uint32_t color_index=0;
    uint32_t color=0xff0000;
    while(!lv_win32_quit_signal) {
        /* Periodically call the lv_task handler.
         * It could be done in a timer interrupt or an OS task too.*/
        lv_task_handler();
        usleep(10000);       /*Just to let the system breath*/

        loop_cnt++;
        if(loop_cnt%10==0){
            color_index++;
            if(color_index==9)
                color_index=0;
        }

        switch(color_index){
         case 0: color=0xff0000; break;
         case 1: color=0x00ff00; break;
         case 2: color=0x0000ff; break;
         case 3: color=0xffff00; break;
         case 4: color=0xff00ff; break;
         case 5: color=0x00ffff; break;
         case 6: color=0x000000; break;
         case 7: color=0xffffff; break;
         case 8: color=0x808080; break;

        }
        create_red_rectangle(color);
    }