您尚未登录。

#1 Re: 全志 SOC » 物理按键,table 上下键怎么控制滑动 » 2024-01-18 13:26:26

@海石生风
没整明白,API里面好像没有找到

#2 Re: 全志 SOC » LVGL 只有物理按键 » 2024-01-18 09:46:37

ktouch 说:

可以自己定义按键处理函数,就是麻烦一点

可以给个实例吗

#3 Re: 全志 SOC » 物理按键,table 上下键怎么控制滑动 » 2024-01-17 14:54:57

海石生风 说:

我以为你是说按Tab键滑动,理解错了。
让Table控件接收KEY事件,在事件处理函数里调用API滑动就行了。

没理解是什么意思

#4 Re: 全志 SOC » 物理按键,table 上下键怎么控制滑动 » 2024-01-17 13:43:23

海石生风 说:

通过Tab得到焦点的控件的底部坐标如果超父控件器大小,就滑动以使其底部坐标在父控件之内。

可以搞个实例看看吗,是回调里试下吗

    //Write codes DataStream_table_1
    DataStream_table_1 = lv_table_create(m_wnd);

    lv_obj_set_pos(DataStream_table_1, 0, 0);
    lv_obj_set_size(DataStream_table_1, 480, 220);
    lv_table_set_col_width(DataStream_table_1, 0, 340);
    lv_table_set_col_width(DataStream_table_1, 1, 130);
    lv_table_set_cell_value(DataStream_table_1,0,0,"Name");
    lv_table_set_cell_value(DataStream_table_1,1,0,"Speed");
    lv_table_set_cell_value(DataStream_table_1,2,0,"Banana");
    lv_table_set_cell_value(DataStream_table_1,3,0,"Citron");
    lv_table_set_cell_value(DataStream_table_1,4,0,"Name1");
    lv_table_set_cell_value(DataStream_table_1,5,0,"Name2");
    lv_table_set_cell_value(DataStream_table_1,6,0,"Name3");
    lv_table_set_cell_value(DataStream_table_1,7,0,"Name4");
    lv_table_set_cell_value(DataStream_table_1,8,0,"Name5");
    lv_table_set_cell_value(DataStream_table_1,9,0,"Name6");

    lv_table_set_cell_value(DataStream_table_1,0,1,"Value");
    lv_table_set_cell_value(DataStream_table_1,1,1,"68.5 km/h");
    lv_table_set_cell_value(DataStream_table_1,3,1,"$3");
    lv_table_set_cell_value(DataStream_table_1,4,1,"Price1");
    lv_table_set_cell_value(DataStream_table_1,5,1,"Price2");
    lv_table_set_cell_value(DataStream_table_1,6,1,"Price3");
    lv_table_set_cell_value(DataStream_table_1,7,1,"Price4");
    lv_table_set_cell_value(DataStream_table_1,8,1,"Price5");
    lv_table_set_cell_value(DataStream_table_1,9,1,"Price6");

    lv_obj_add_event_cb(DataStream_table_1, DataStream_table_1_event_handler, LV_EVENT_KEY, NULL);
    lv_group_add_obj(groupRect_Diag, DataStream_table_1);//绑定组

#5 Re: 全志 SOC » LVGL 只有物理按键 » 2024-01-17 10:55:40

@regbbs
能不能整个例子,倒腾了几天还是不行
物理按键控制不了滑动

    DataStream_table_1 = lv_table_create(NULL);
    lv_obj_set_pos(DataStream_table_1, 0, 0);
    lv_obj_set_size(DataStream_table_1, 480, 220);
    lv_table_set_col_width(DataStream_table_1, 0, 340);
    lv_table_set_col_width(DataStream_table_1, 1, 130);

    lv_table_set_cell_value(DataStream_table_1,0,0,"Name");
    lv_table_set_cell_value(DataStream_table_1,1,0,"ENGING");
    lv_table_set_cell_value(DataStream_table_1,2,0,"Banana");
    lv_table_set_cell_value(DataStream_table_1,3,0,"Citron");
    lv_table_set_cell_value(DataStream_table_1,4,0,"Name1");
    lv_table_set_cell_value(DataStream_table_1,5,0,"Name2");
    lv_table_set_cell_value(DataStream_table_1,6,0,"Name3");
    lv_table_set_cell_value(DataStream_table_1,7,0,"Name4");
    lv_table_set_cell_value(DataStream_table_1,8,0,"Name5");
    lv_table_set_cell_value(DataStream_table_1,9,0,"Name6");

    lv_table_set_cell_value(DataStream_table_1,0,1,"Value");
    lv_table_set_cell_value(DataStream_table_1,1,1,"68.5 km/h");
    lv_table_set_cell_value(DataStream_table_1,3,1,"$3");
    lv_table_set_cell_value(DataStream_table_1,4,1,"Price1");
    lv_table_set_cell_value(DataStream_table_1,5,1,"Price2");
    lv_table_set_cell_value(DataStream_table_1,6,1,"Price3");
    lv_table_set_cell_value(DataStream_table_1,7,1,"Price4");
    lv_table_set_cell_value(DataStream_table_1,8,1,"Price5");
    lv_table_set_cell_value(DataStream_table_1,9,1,"Price6");

    lv_obj_add_event_cb(DataStream_table_1, DataStream_table_1_event_handler, LV_EVENT_KEY, NULL);
    lv_group_add_obj(groupRect_Diag, DataStream_table_1);//绑定组

52539626-7096-4da4-B6F1-134C18102B8E.png

#7 Re: 全志 SOC » LVGL 只有物理按键 » 2023-12-17 15:38:16

QQ图片20231217131034.png
那这种界面,有没有控件直接使用

#8 Re: 全志 SOC » LVGL 只有物理按键 » 2023-12-17 13:17:37

regbbs 说:

@huaze
是的,不过防抖放在回调函数或其他地方比较好

非常感谢

#9 Re: 全志 SOC » LVGL 只有物理按键 » 2023-12-16 16:24:22

@regbbs
修改回调,是这意思吗
void ui_event_Button( lv_event_t * e)
{
    lv_event_code_t event_code = lv_event_get_code(e);
    lv_obj_t * target = lv_event_get_target(e);

    if (button_fun() == 0) return;//防抖
    LOG_I("get_key :%d", lv_event_get_key(e));
    if ( event_code == LV_EVENT_KEY &&  lv_event_get_key(e) == LV_KEY_RIGHT  )
    {
        lv_group_focus_next(groupRect);
    }
}
void test2()
{
    lv_obj_t * button = lv_btn_create(lv_scr_act());
    lv_obj_set_size(button, 80, 80);
    lv_obj_set_pos(button, 100, 0);
    lv_obj_add_event_cb(button, ui_event_Button, LV_EVENT_ALL, NULL);//UP

    lv_obj_t * button1 = lv_btn_create(lv_scr_act());
    lv_obj_set_size(button1, 80, 80);
    lv_obj_set_pos(button1, 0, 100);
    lv_obj_add_event_cb(button1, ui_event_Button, LV_EVENT_ALL, NULL);//UP

    lv_obj_t * button2 = lv_btn_create(lv_scr_act());
    lv_obj_set_size(button2, 80, 80);
    lv_obj_set_pos(button2, 100, 100);
    lv_obj_add_event_cb(button2, ui_event_Button, LV_EVENT_ALL, NULL);//UP

    //注册组
    groupRect = lv_group_create();
    //绑定组
    lv_group_add_obj(groupRect, button);
    lv_group_add_obj(groupRect, button1);
    lv_group_add_obj(groupRect, button2);

    lv_indev_set_group(indev_keypad, groupRect);//设置默认组

}

#10 Re: 全志 SOC » LVGL 只有物理按键 » 2023-12-16 15:32:58

@regbbs
不理解要怎么做,可能是刚接触LVGL

#11 Re: 全志 SOC » LVGL 只有物理按键 » 2023-12-16 10:49:22

@regbbs
回调函数有,但是控件只有部分按键有实际效果

static void keypad_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
{
    static uint32_t last_key = 0;

    /*Get whether the a key is pressed and save the pressed key*/
    uint32_t act_key = keypad_get_key();
    if(act_key != 0) {
        data->state = LV_INDEV_STATE_PR;

        LOG_D("act_key = %d",act_key);
        //beep(1, 100, 50, 0);
        /*Translate the keys to LVGL control characters according to your key definitions*/
        switch(act_key) {
            case 1:
                act_key = LV_KEY_LEFT;//左
                break;
            case 2:
                act_key = LV_KEY_PREV;//上
                break;
            case 3:
                act_key = LV_KEY_RIGHT;//右
                break;
            case 4:
                act_key = LV_KEY_NEXT;//下
                break;
            case 5:
                act_key = LV_KEY_HOME;//返回
                break;
            case 6:
                act_key = LV_KEY_ENTER;//确定
                break;
        }

        last_key = act_key;
    }
    else {
        data->state = LV_INDEV_STATE_REL;
    }

    data->key = last_key;
}

#12 Re: 全志 SOC » LVGL 只有物理按键 » 2023-12-15 11:47:40

@regbbs
这个有找到,当不知到怎么更UI连接起来
switch(act_key) {
            case 1:
                act_key = LV_KEY_RIGHT;
                break;
            case 2:
                act_key = LV_KEY_LEFT;
                break;
            case 3:
                act_key = LV_KEY_UP;
                break;
            case 4:
                act_key = LV_KEY_DOWN;
                break;
            case 5:
                act_key = LV_KEY_ENTER;
                break;
            case 6:
                act_key = LV_KEY_ESC;
                break;
        }

        last_key = act_key;

#13 全志 SOC » LVGL 只有物理按键 » 2023-12-14 20:39:55

huaze
回复: 18

有8个按键要怎么实现UI

#15 Re: 全志 SOC » Windows平台烧写f1c100s 荔枝派nano开发板步奏 » 2023-12-01 13:43:59

RT-Thread Studio 编译出来的bin,不能直接烧录到ram运行吗,

#18 Re: 全志 SOC » Windows平台烧写f1c100s 荔枝派nano开发板步奏 » 2023-11-29 15:52:52

一直不知道怎么烧录,找了好久 下载研究研究

#19 Re: 全志 SOC » 全志F1C100S usb裸机驱动移植(暂支持device hid类和cdc类) » 2023-11-28 17:25:35

E:\Burn>.\Tools\sunxi-fel.exe spl rtthread.bin
SPL: eGON header is not found

E:\Burn>.\Tools\sunxi-fel.exe -p write 0x80000000 rtthread.bin
100% [================================================]   146 kB,  192.7 kB/s

E:\Burn>.\Tools\sunxi-fel.exe exec 0x80000000

好像不太行

#20 Re: 全志 SOC » 历时半个月,终于把F1C200S开发板的RTThread 触摸(GT911)+显示RGB(40PIN)565+LVGL8.3.0调通支持中文 » 2023-11-28 16:25:04

E:\sunxi\sunxi-tools-mingw64>sunxi-fel ver
AWUSBFEX soc=00001663(F1C100s) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000

E:\sunxi\sunxi-tools-mingw64>sunxi-fel spiflash-info
Manufacturer: Unknown (00h), model: CDh, size: 65536 bytes.

RT-Thread Studio 构建的bin要怎么烧录

#21 Re: 全志 SOC » 荔枝派zero/小智极客S3/V3s使用sunxi-fel 借 u-boot 启动 Linux系统, 无需 spi flash / TF 卡 » 2023-11-28 11:52:48

E:\MDD\sunxi\sunxi-tools-mingw64>sunxi-fel u-boot rttherad.bin
Invalid command u-boot

#22 Re: 全志 SOC » 荔枝派zero/小智极客S3/V3s使用sunxi-fel 借 u-boot 启动 Linux系统, 无需 spi flash / TF 卡 » 2023-11-28 11:52:03

E:\MD\sunxi\sunxi-tools-mingw64>sunxi-fel u-boot rttherad.bin
Invalid command u-boot

是什么意思

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn