list 列表控件

这篇具有很好参考价值的文章主要介绍了list 列表控件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

list 控件简单分解就是一个背景页面加上顺序排列的按钮组成,按钮里面 可以包含一个图标和文本,当然,按钮的布局并不是固定的,库也允许用户重 新定义按钮的布局。按钮在添加后如果总大小超过 list 控件大小,可以上下滚 动。list 控件的应用非常广泛 ,最常见的就是微信界面,可以把页面当成是一 个背景,每一个联系人就是一个按钮控件内包含了头像以及用户名。 基于 list 控件模拟微信界面:
list 列表控件

list 控件基础知识

添加按钮

在创建控件后,是一个空的 list,我们需要往 list 添加 btn 才是一个完整 的 list,函数 lv_list_add_btn(list, img_src, txt) 该函数会返回所添加的 btn 的指针,方便我们对 btn 控件进行其他操作。 在添加按钮的时候,我们可以指定按钮所使用的图像和文本,也可以使用 内置的符号字体作为图像,例如:

lv_list_add_btn(list, LV_SYMBOL_FILE, "file"); /* 添加按钮到 list,符号字体作为图标 */ 
lv_list_add_btn(list, &close_img, "close"); /* 添加按钮到 list,图像源作为图标 */

如果我们不想添加文本,直接输入 NULL 即可。 按钮的宽度会根据 list 的宽度设置为最大,按钮的高度会根据图标和文本, 以及按钮样式的填充部分进行自动调整。 添加 btn 会指定图标和文本,本质上是一个 img 控件和 label 控件,我们 可以获取这个 img 控件和 label 控件。函数 lv_list_get_btn_label(list_btn) 可以获取按钮的 label 控件指针,函数 lv_list_get_btn_img(list_btn) 可以 获取按钮的 img 控件指针。也可以单独获取按钮的文本,函数 lv_list_get_bt n_text(list_btn) 获取按钮的 label 和 img 的作用很大,在很多时候,我们往往需要修改 la bel 的一些参数,比如中文字体的显示,我们就需要获取 label 控件的指针,然 后修改其样式和尺寸。

删除按钮

可以使用函数 lv_list_remove(list, index) 根据索引来删除按钮,删除 成功返回 true,index 的值必须大于等于 0,且必须小于按钮的数量,按钮的数 量可以通过函数 lv_list_get_size(list) 获取。也可以清除 list 控件上的所 有按钮,函数 lv_list_clean(list)

获取按钮

在创建按钮的时候会返回按钮控件的指针,那么在创建多个按钮以后,我们一样可以获取每个按钮的指针。 函数 lv_list_get_prev_btn(list, prev_btn) 和函数 lv_list_get_nex t_btn(list, prev_btn) 可以依次获取按钮控件的指针,如果将第二个参数设 置为 NULL,则将从顶部或者底部开始获取按钮。

手动导航

可以使用函数 lv_list_up(list) 和 lv_list_down(list) 手动移动按 钮,也可以直接将焦点放在按钮上,函数 lv_list_focus(btn, LV_ANIM_ON/O FF) 可以选择是否打开动画。上下移动焦点时的动画时间也可以进行修改,函 数 lv_list_set_anim_time(list, anim_time) 动画时间设置为 0 表示没有动 画。

边缘闪烁

当 list 滑动到最顶部或者最底部的时候,可以显示一个类似圆圈的动态效 果,跟智能手机的效果类似,通过函数 lv_list_set_edge_flash(list, en) 启用或者关闭该功能。
list 列表控件

滚动传播

list 控件内的按钮是可以滑动的,如果 list 是创建在 page 上面,当我们 滑动 list 到顶部或者底部的时候,就可以将滑动传播到父窗口,这样就可以带 动父窗口进行滚动。我们需要使用函数 lv_list_set_scroll_propagation(lis t, true) 来使能该功能。

单选模式

如果按钮使能了 toggle,可以使用函数 lv_list_set_single_mode(lis t, true) 来确保只有一个按钮处于 toggle 状态。
list 列表控件

选中按钮

可以使用函数 lv_list_set_btn_selected(list, btn) 选中某个按钮, 选中后的按钮处于 LV_BTN_STATE_PR/TG_PR 状态。

滚动条

当添加的按钮超过 list 的尺寸后,就会启用滚动条,可以利用函数 lv_li st_set_sb_mode(list,mode) 来设置滚动条的模式

样式

list 控件的样式使用以下函数进行修改: lv_list_set_style(list, LV_LIST_STYLE_…, &style) 可用的样式类型:
list 列表控件
list 列表控件文章来源地址https://www.toymoban.com/news/detail-405594.html

到了这里,关于list 列表控件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】分割列表(list)方法详解:平均n等份、拆成一个一个的

    在日常开发中,有时候需要把一个大列表分割为固定的小列表,再进行相关处理。下面来看看详细的分割方法: 2.1 分割大列表为1个元素的小列表 2.2 分割大列表为3个元素的小列表 2.2.1 普通方法 2.2.2 改进方法 改进:用列表推导,结果都放到一个列表。 2.2.3 lambda方法 2.3 平均

    2024年02月03日
    浏览(43)
  • [开发|java] 将一个Java字符串按逗号分割成一个列表(List)

    可以使用Java的 split() 方法将字符串分割成字符串数组,然后将数组转换为列表。以下是一个示例代码: 输出 在上述代码中,我们使用 split(\\\",\\\") 方法将字符串 str 按逗号分割成一个字符串数组,然后使用 Arrays.asList() 方法将数组转换为列表。最后,我们打印输出列表的内容。

    2024年02月16日
    浏览(57)
  • css新闻列表案例(li标签和a标签各自控制一个背景图片)

    !DOCTYPE html html lang=\\\"en\\\" head   meta charset=\\\"UTF-8\\\"   meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"IE=edge\\\"   meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"   title新闻列表/title   style     * {       margin: 0;       padding: 0;       box-sizing: border-box;     }     li {       list-style: none;     }  

    2024年01月19日
    浏览(47)
  • Qt学习笔记之二--创建一个简单的qt互动界面(超级无敌巨详细,0基础也能会,主打的就是图多,语句通俗)

      选择第一个选项,然后两个下一步------ 直到   这里要选择基类,我们选择Qwiget  至于为什么,可以看看我收藏的这篇博客QMainWindow和QWidget的区别_qwidget和qmainwindow_独行侠_阿涛的博客-CSDN博客 ok,创建完成后,我们使用快捷键Ctrl+R来运行一下,看看是否会弹出小窗口,弹出说

    2024年02月05日
    浏览(54)
  • 在 QML 中,ComboBox 是一种常用的用户界面控件,通常用于提供一个下拉式的选择框,允许用户从预定义的选项列表中选择一个值

    ComboBox 详解: 以下是 ComboBox 的一些重要属性和特性: model : 用于指定 ComboBox 中的选项列表,可以是一个数组、列表、模型或者其他可迭代的数据结构。 editable : 用于指定是否允许用户编辑 ComboBox 中的文本输入框,以便输入非预定义的选项。 currentIndex : 用于获取或设置当前

    2024年04月15日
    浏览(43)
  • Collectors.partitioningBy使用将List分解成两个集合

    结果:

    2024年02月13日
    浏览(50)
  • 【PyQT/Pysider】控件背景渐变

    这段样式表使用了 qlineargradient 函数来创建一个水平方向的线性渐变,从左到右渐变。 渐变起点 (x1:0, y1:0) 在左上角 渐变终点 (x2:1, y2:0) 在右上角 使用了四个颜色停止点: 在 0 处,颜色为 rgba(255, 178, 102, 255) 在 0.55 处,颜色为 rgba(235, 148, 61, 255) 在 0.98 处,颜色为 rgba(0, 0, 0,

    2024年03月17日
    浏览(39)
  • MFC为控件添加背景图片

    1、 添加选择Bitmap导入图片,图片文件最好放在项目res目录中,同时是BMP格式。上传后的图片在资源视图,命名为IDB_BITMAP_M_BACK。 2、在cpp的C***Dlg::OnPaint()函数下添加如下代码 如果是主程序的cpp文件中已有OnPaint函数,则修改else部分代码: 运行效果:

    2024年02月12日
    浏览(49)
  • 就是这么简单,Selenium StaleElementReferenceException 异常分析与解决

    简介 Selenium 是一个流行的自动化测试工具,用于模拟用户与网页交互。然而,当我们在使用 Selenium 时,可能会遇到一个常见的异常,即 StaleElementReferenceException 。这个异常通常在我们尝试与网页上的元素交互时抛出,可能会导致我们的自动化测试脚本运行失败。本文将深入探

    2024年04月14日
    浏览(37)
  • QT设置widget背景图片,不影响widget内其他控件背景的方法

    首先说方法,在给widget或者frame或者其他任何类型的控件添加背景图时,在样式表中加入如下代码,指定某个控件,设置其背景。 如果单纯改变样式表,没有指定控件的话,内部的其他控件背景也会改变。 特别提醒:类名 # 控件名,其中控件名要准确,假如你把widget的名字改

    2024年02月11日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包