国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LVGL8.1版本筆記

這篇具有很好參考價(jià)值的文章主要介紹了LVGL8.1版本筆記。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

之前學(xué)過(guò)LVGL6,現(xiàn)在版本更新到LVGL8了,學(xué)習(xí)下新版本,本文主要是記錄一些LVGL8的新特性,區(qū)別和lvgl6的不同之處 。
lv_task_handler()的作用:
鏈接: lv_task_handler()是什么,lvgl到底在while(1)中做了什么
總結(jié):lv_task_handler()中,調(diào)用lv_indev_read_task()來(lái)處理輸入信息,當(dāng)沒(méi)有輸入時(shí),while(1)在做空循環(huán),當(dāng)有輸入時(shí),運(yùn)行l(wèi)v_hal_indev.c #149 _lv_indev_read(),調(diào)用之前注冊(cè)的輸入驅(qū)動(dòng)回調(diào)函數(shù),獲取數(shù)據(jù),然后調(diào)用lv_refr.c #177 _lv_disp_refr_task()來(lái)執(zhí)行刷新操作,刷新時(shí)首先調(diào)用繪圖函數(shù),將內(nèi)存填充好,之后刷新過(guò)程會(huì)調(diào)用之前注冊(cè)到顯示驅(qū)動(dòng)的回調(diào)函數(shù),將相應(yīng)內(nèi)容刷到對(duì)應(yīng)顯示驅(qū)動(dòng)上,刷新結(jié)束,進(jìn)行下一次的循環(huán)
————————————————
版權(quán)聲明:本文為CSDN博主「hebao0」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_46338291/article/details/121626741
屬性:
設(shè)置對(duì)象的屬性通過(guò)一個(gè)函數(shù)傳入不同的參數(shù)來(lái)實(shí)現(xiàn)
lv_obj_add/clear_flag(obj,LV_OBJ_FLAG...)
FLAG分類:
LV_OBJ_FLAG_HIDDEN 隱藏對(duì)象。 (就像它根本不存在一樣)
LV_OBJ_FLAG_CLICKABLE 使輸入設(shè)備可點(diǎn)擊對(duì)象
LV_OBJ_FLAG_CLICK_FOCUSABLE 單擊時(shí)將焦點(diǎn)狀態(tài)添加到對(duì)象
LV_OBJ_FLAG_CHECKABLE 對(duì)象被點(diǎn)擊時(shí)切換選中狀態(tài)
LV_OBJ_FLAG_SCROLLABLE 使對(duì)象可滾動(dòng)
LV_OBJ_FLAG_SCROLL_ELASTIC 允許在內(nèi)部滾動(dòng)但速度較慢
LV_OBJ_FLAG_SCROLL_MOMENTUM 在“拋出”時(shí)使對(duì)象滾動(dòng)得更遠(yuǎn)
LV_OBJ_FLAG_SCROLL_ONE 只允許滾動(dòng)一個(gè)可捕捉的孩子
LV_OBJ_FLAG_SCROLL_CHAIN 允許將滾動(dòng)傳播到父級(jí)
LV_OBJ_FLAG_SCROLL_ON_FOCUS 自動(dòng)滾動(dòng)對(duì)象以使其在聚焦時(shí)可見(jiàn)
LV_OBJ_FLAG_SNAPPABLE 如果在父對(duì)象上啟用了滾動(dòng)捕捉,它可以捕捉到這個(gè)對(duì)象
LV_OBJ_FLAG_PRESS_LOCK 保持對(duì)象被按下,即使按下從對(duì)象上滑動(dòng)
LV_OBJ_FLAG_EVENT_BUBBLE 也將事件傳播給父級(jí)
LV_OBJ_FLAG_GESTURE_BUBBLE 將手勢(shì)傳播給父級(jí)
LV_OBJ_FLAG_ADV_HITTEST 允許執(zhí)行更準(zhǔn)確的命中(點(diǎn)擊)測(cè)試。例如。考慮圓角。
LV_OBJ_FLAG_IGNORE_LAYOUT 使對(duì)象可以通過(guò)布局定位
LV_OBJ_FLAG_FLOATING 父滾動(dòng)時(shí)不滾動(dòng)對(duì)象,忽略布局
LV_OBJ_FLAG_LAYOUT_1 自定義標(biāo)志,可供布局免費(fèi)使用
LV_OBJ_FLAG_LAYOUT_2 自定義標(biāo)志,可供布局免費(fèi)使用
LV_OBJ_FLAG_WIDGET_1 自定義標(biāo)志,小部件免費(fèi)使用
LV_OBJ_FLAG_WIDGET_2 自定義標(biāo)志,小部件免費(fèi)使用
LV_OBJ_FLAG_USER_1 自定義標(biāo)志,用戶免費(fèi)使用
LV_OBJ_FLAG_USER_2 自定義標(biāo)志,用戶免費(fèi)使用
LV_OBJ_FLAG_USER_3 自定義標(biāo)志,用戶免費(fèi)使用
LV_OBJ_FLAG_USER_4 自定義標(biāo)志,由用戶部分免費(fèi)使用。
示例:
lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);//隱藏對(duì)象
lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);//設(shè)置對(duì)象不可點(diǎn)擊

樣式style
lvgl8的樣式更加的方便,分為普通樣式和本地樣式,
普通樣式和之前的一樣,都要先定義在設(shè)置,
本地樣式不用,直接對(duì)obj的默認(rèn)樣式進(jìn)行更改,
樣式創(chuàng)建出來(lái)通過(guò)lv_style_init(&style);初始化
樣式的設(shè)置都是同個(gè)函數(shù)實(shí)現(xiàn)的,不同于之前的結(jié)構(gòu)體賦值
例如:lv_style_set_XXX(&style,value);
本地樣式函數(shù):lv_obj_set_style_xxx(obj,value,select);
給目標(biāo)設(shè)置樣式函數(shù):lv_obj_add_style(obj,&style,selector);
para_3是obj的狀態(tài)例如默認(rèn)是0,就是默認(rèn)狀態(tài),也稱為部分(path)
LV_STATE_PRESSED是按下時(shí)的狀態(tài),就是obj按下時(shí)的樣式設(shè)置
新增了樣式過(guò)渡,
lvgl8的樣式改變的還是很大的,而且更加方便了,尤其是本地樣式,直接改變空間的默認(rèn)樣式,不需要占用額外的空間保存樣式了。

圖片按鈕
lvgl8的圖片按鈕好像只能是設(shè)置三種圖片源的那種創(chuàng)建,只有一種的我沒(méi)找到他的函數(shù)
通過(guò)樣式過(guò)渡,用一張圖片就簡(jiǎn)單實(shí)現(xiàn)的之前的圖片按鈕的按下情景

添加事件

lv_obj_add_event_cb(obj, my_event_cb_1, LV_EVENT_CLICKED, user_para);
lv_obj_add_event_cb(obj, my_event_cb_2, LV_EVENT_PRESSED, NULL);
lv_obj_add_event_cb(obj, my_event_cb_3, LV_EVENT_ALL, NULL);
lv_obj_add_event_cb(obj, increment_on_click, LV_EVENT_CLICKED, &num1);
lv_obj_add_event_cb(obj, increment_on_click, LV_EVENT_CLICKED, &num2);

事件的回調(diào)函數(shù)參數(shù)只有event一個(gè)了,但是可以再內(nèi)部調(diào)用函數(shù)判斷obj
static void imgbtn_first_cb(lv_event_t* event)參數(shù)不是指針類型會(huì)有warning
可以在事件回調(diào)函數(shù)中獲取發(fā)生事件的obj = lv_event_get_target(event);
lv_event_t 是傳遞給事件回調(diào)的唯一參數(shù),它包含有關(guān)事件的所有數(shù)據(jù)??梢詮闹蝎@得以下值:
lv_event_get_code(e) 獲取觸發(fā)的事件代碼
lv_event_get_target(e) 獲取事件發(fā)送到(關(guān)聯(lián))的對(duì)象
lv_event_get_original_target(e) 獲取事件最初發(fā)送到的對(duì)象(與 lv_event_get_target 不同,如果 event bubbling 被啟用)
lv_event_get_user_data(e) 獲取作為lv_obj_add_event_cb的最后一個(gè)參數(shù)傳遞的指針。
lv_event_get_param(e) 獲取作為lv_event_send的最后一個(gè)參數(shù)傳遞的參數(shù)
添加事件不能用與操作,要另外寫一次函數(shù)

刪除了lv_cont控件,好像是用lv_obj_create();代替創(chuàng)建一個(gè)矩形對(duì)象

lbgl8可以直接顯示數(shù)字,lv_label_set_text_fmt(label,"%d",100);
之前的版本不知道有沒(méi)有這個(gè)函數(shù),這樣就可以直接用結(jié)構(gòu)體數(shù)據(jù)了
lv_label_set_text_fmt(lab, "Item %d", i);類似printf()函數(shù),可以用這個(gè)同時(shí)顯示字符和數(shù)字
%s,%d,%f等等都可以用lv_label_set_text_fmt(label1,"%s\r\n%d\n","hello",520);這樣字符串和數(shù)字就都可以直接顯示了,

之前用lv_list做菜單,lvgl8他有l(wèi)v_menu控件,可以直接生成menu,好像8.2版本才有。

menu控件是8.2版本才有的,目前使用的是8.1版本,所以要移植過(guò)來(lái)
但是移植過(guò)來(lái)軸有warning,雖然功能可以實(shí)現(xiàn),但是對(duì)于微型強(qiáng)迫癥的我的來(lái)說(shuō)不好
https://blog.csdn.net/mygod2008ok/article/details/123470145
這個(gè)是8.2版本在vs2022上的仿真環(huán)境搭建,以后有機(jī)會(huì)的搞一下,

demo.h頭文件中包含了lv_menu.h就沒(méi)有warning

menu的初始頁(yè)面返回鍵通過(guò)lv_menu_set_mode_root_back_btn(menu,flag)設(shè)置
LV_MENU_ROOT_BACK_BTN_DISABLED
LV_MENU_ROOT_BACK_BTN_ENABLED
常用的API
lv_menu_page_create(menu, title)創(chuàng)建新的空菜單頁(yè),可以添加任意小控件
lv_menu_set_page(menu, page)設(shè)置菜單的主界面
lv_menu_set_sidebar_page(menu, page)設(shè)置側(cè)邊欄
lv_menu_set_load_page_event(menu, obj, new page).連接兩個(gè)頁(yè)面
lv_menu_cont_create(parent page) 創(chuàng)建新的容器
lv_menu_section_create(parent page) 創(chuàng)建新的空區(qū)域
lv_menu_separator_create(parent page) 創(chuàng)建分隔符
lv_menu_set_mode_header(lv_obj_t *obj, lv_menu_mode_header_t mode_header)設(shè)置標(biāo)題的狀態(tài)
lv_menu_set_load_page_event(lv_obj_t *menu, lv_obj_t *obj, lv_obj_t *page)將菜單添加到菜單項(xiàng)

當(dāng)主欄或側(cè)邊欄的返回btn按下時(shí)發(fā)送LV_EVENT_CLICKED
主界面的返回按鈕通過(guò)添加事件的方式設(shè)置操作
例如:lv_obj_add_event_cb(menu,back_event_handler,LV_EVENT_CLICKED,menu);

menu的子菜單必須在上一級(jí)菜單前面進(jìn)行初始化設(shè)置

mbox消息對(duì)話框更加方便了
lv_msgbox_create(Parent, "title", "text", btns, close_btn_en);文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-794237.html

到了這里,關(guān)于LVGL8.1版本筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • lvgl8.x 對(duì)接實(shí)體按鍵驅(qū)動(dòng)

    lvgl8.x 對(duì)接實(shí)體按鍵驅(qū)動(dòng)

    實(shí)體按鍵屬于 lvgl 的輸入設(shè)備中的一種,所以對(duì)接外部的硬件實(shí)體按鍵實(shí)際上就是為 lvgl 添加輸入設(shè)備。為 lvgl 添加輸入設(shè)備需要在 lv_port_indev.c 這個(gè) c 文件中完成, 注意這個(gè)文件并不存在于 lvgl src 源碼文件夾下,而是位于 examples/porting 文件夾下,在這個(gè)目錄下官方為我們準(zhǔn)

    2024年02月11日
    瀏覽(18)
  • ESP32開(kāi)發(fā):IDFV4.4配置LVGL8.3

    ESP32開(kāi)發(fā):IDFV4.4配置LVGL8.3

    LVGL GITHUB代碼倉(cāng)庫(kù)如下:https://github.com/lvgl/lvgl/tree/release/v8.3 官方已經(jīng)在ESP32上移植好的代碼demo,目前最新版是LVGL 7.9:https://github.com/lvgl/lv_port_esp32 我們可以將LVGL官方配置好的ESP32 LVGL倉(cāng)庫(kù)下載下來(lái),直接編譯作為工程使用: 不出問(wèn)題,可以直接編譯成功,如下圖: 如果對(duì)

    2024年02月15日
    瀏覽(16)
  • idf lvgl8顯示觸摸移植,st7789v+cst816

    idf lvgl8顯示觸摸移植,st7789v+cst816

    用到的所有文件鏈接 我整理的lvgl文件:https://gitee.com/BHJ2022/lvgl.git gsm項(xiàng)目地址:https://gitee.com/gsm-wheather-project 1)將gsm中的屏幕及觸摸驅(qū)動(dòng)(touch_screen文件夾)直接復(fù)制到lvgl_disp_indev的component文件中 2)修改touch_screen的cmakelist如圖 3)將gsm中的main中的include直接復(fù)制到lvgl_disp_

    2024年02月07日
    瀏覽(20)
  • 國(guó)民技術(shù)N32G45X移植LVGL8.3+ILI9488

    國(guó)民技術(shù)N32G45X移植LVGL8.3+ILI9488

    使用的是自制的一塊控制板,主控選用的是國(guó)民技術(shù)的N32G452VEL7芯片,屏幕大小為3.5寸,驅(qū)動(dòng)型號(hào)為ILI9488。 從GitHub中獲取LVGL碼源: GitHub - lvgl/lvgl at release/v8.3 按照下邊圖示(步驟1-5)選擇V8.3版本并進(jìn)行下載 打開(kāi)下載好的LVGL-V8.3文件夾,移植LVGL主要就是操作下邊這四份文件(/文

    2024年01月16日
    瀏覽(25)
  • STM32移植LVGL8.0.2超詳細(xì)的保姆級(jí)教程附移植好的工程文件

    STM32移植LVGL8.0.2超詳細(xì)的保姆級(jí)教程附移植好的工程文件

    網(wǎng)上教程那么多,為什么你要寫這個(gè)教程? 問(wèn)的好,csnd上很多類似的教程,他們寫的都很好,但是有些過(guò)于簡(jiǎn)潔,對(duì)剛上手的小伙伴不太友好,移植到一半遇到bug就想放棄。一些第三方的教程很詳細(xì),但是由于lvgl的版本迭代很快,移植的過(guò)程有了一些變化,所謂失之毫厘差

    2024年02月03日
    瀏覽(43)
  • stm32f407移植LVGL8.3.1實(shí)況(所有bug調(diào)試現(xiàn)場(chǎng),最終成功點(diǎn)燈)

    stm32f407移植LVGL8.3.1實(shí)況(所有bug調(diào)試現(xiàn)場(chǎng),最終成功點(diǎn)燈)

    聲明: 本文主要參考 stm32移植lvgl_NULL_1969的博客-CSDN博客_lvgl stm32 及 STM32移植LVGL8.0.2超詳細(xì)的保姆級(jí)教程附移植好的工程文件 ,底層驅(qū)動(dòng)主要采用正點(diǎn)原子觸摸屏實(shí)驗(yàn)和定時(shí)器實(shí)驗(yàn) 1.1 主要硬件接口 1.1.1 觸摸屏 主要需要觸摸屏來(lái)實(shí)現(xiàn)屏幕的顯示及觸摸。 觸摸屏需要底層的接

    2024年01月16日
    瀏覽(18)
  • lvgl lv_indev_t (一)之 _lv_indev_drv_t 解讀

    輸入設(shè)備驅(qū)動(dòng)句柄,由lv_indev_add()接口注冊(cè) lv_indev_type_t type 輸入設(shè)備類型 *read_cb 獲取輸入設(shè)備數(shù)據(jù)回調(diào)接口 這個(gè)回調(diào)在輸入設(shè)備定時(shí)任務(wù)中周期調(diào)用,用來(lái)獲取輸入設(shè)備的狀態(tài)和數(shù)據(jù) *feedback_cb 反饋回調(diào)接口 這個(gè)回調(diào)在輸入設(shè)備有動(dòng)作時(shí)觸發(fā)事件發(fā)送時(shí)調(diào)用,反饋事件信息

    2024年02月08日
    瀏覽(20)
  • LVGL:拓展部件——鍵盤 lv_keyboard

    LVGL:拓展部件——鍵盤 lv_keyboard

    此控件特點(diǎn): 特殊Button矩陣: lv_keyboard 本質(zhì)上是一個(gè)經(jīng)過(guò)定制的 按鈕矩陣 控件。每個(gè)按鈕都可以獨(dú)立觸發(fā)事件或響應(yīng)。 預(yù)定義的鍵映射: lv_keyboard 自帶了一套預(yù)設(shè)的 按鍵布局 和 對(duì)應(yīng)的字符映射表 ,開(kāi)發(fā)者可以根據(jù)需要選擇或自定義這些鍵映射。 與 lv_textarea 配合使用:

    2024年03月20日
    瀏覽(22)
  • LVGL源碼分析(1):lv_ll鏈表的實(shí)現(xiàn)

    在LVGL中難免需要用到鏈表:group中的對(duì)象需要用鏈表來(lái)存儲(chǔ),這樣可以切換對(duì)象的焦點(diǎn);再比如LVGL內(nèi)部的定時(shí)器,多個(gè)定時(shí)器也是用鏈表進(jìn)行存儲(chǔ)的。這篇文章就來(lái)分析一下LVGL中鏈表的源碼。 對(duì)于鏈表來(lái)說(shuō),肯定有一個(gè)頭指針和一個(gè)尾指針,在LVGL中,鏈表的數(shù)據(jù)結(jié)構(gòu)如下:

    2024年02月13日
    瀏覽(30)
  • LVGL core group焦點(diǎn)分組管理(lv_group.c)

    更多源碼分析請(qǐng)?jiān)L問(wèn): LVGL 源碼分析大全

    2024年02月09日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包