您尚未登录。

楼主 # 2024-01-17 09:11:18

huaze
会员
注册时间: 2023-11-27
已发帖子: 24
积分: 19

物理按键,table 上下键怎么控制滑动

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

超过屏幕的部分,显示不出来

离线

#1 2024-01-17 13:14:17

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 650
积分: 783
个人网站

Re: 物理按键,table 上下键怎么控制滑动

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

离线

楼主 #2 2024-01-17 13:43:23

huaze
会员
注册时间: 2023-11-27
已发帖子: 24
积分: 19

Re: 物理按键,table 上下键怎么控制滑动

海石生风 说:

通过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);//绑定组

离线

#3 2024-01-17 13:58:15

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 650
积分: 783
个人网站

Re: 物理按键,table 上下键怎么控制滑动

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

离线

楼主 #4 2024-01-17 14:54:57

huaze
会员
注册时间: 2023-11-27
已发帖子: 24
积分: 19

Re: 物理按键,table 上下键怎么控制滑动

海石生风 说:

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

没理解是什么意思

离线

#5 2024-01-17 15:51:25

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 650
积分: 783
个人网站

Re: 物理按键,table 上下键怎么控制滑动

huaze 说:
海石生风 说:

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

没理解是什么意思

事件处理函数就是丢给lv_obj_add_event_cb的那个回调函数,你的用法不太对,改成如下:

lv_obj_add_event_cb(DataStream_table_1, DataStream_table_1_event_handler, LV_EVENT_KEY, DataStream_table_1);

// 那么DataStream_table_1就存储在lv_event_t的user_data里,就可以在回调函数里取出来使用:
void DataStream_table_1_event_handler(lv_event_t * e) {
    lv_table_t *table = e->user_data;
    // 使用table来调用Table的API来滑动
}

最近编辑记录 海石生风 (2024-01-17 15:54:40)

离线

#6 2024-01-17 16:04:35

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 650
积分: 783
个人网站

Re: 物理按键,table 上下键怎么控制滑动

LVGL似乎有专门控制滚动的API。

最近编辑记录 海石生风 (2024-01-17 16:08:38)

离线

楼主 #7 2024-01-18 13:26:26

huaze
会员
注册时间: 2023-11-27
已发帖子: 24
积分: 19

Re: 物理按键,table 上下键怎么控制滑动

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

离线

#8 2024-01-18 17:23:27

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 650
积分: 783
个人网站

Re: 物理按键,table 上下键怎么控制滑动

看官方文档,手动滚动的API在这里:https://docs.lvgl.io/8/overview/scroll.html#scroll-manually
似乎你对UI编程还不太熟悉,建议多看文档、多看例程,编程前对UI库要有一定理解。

离线

页脚

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

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