91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡(jiǎn)析LVGL基礎(chǔ)知識(shí)之對(duì)象模塊

電子工程師 ? 來源:極客筆記 ? 作者:極客筆記 ? 2021-06-11 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

LVGL 中,用戶界面的基本構(gòu)建塊是對(duì)象,也稱為小部件(widget)。本文主要是介紹LVGL的對(duì)象模塊。

LVGL基礎(chǔ)知識(shí)之對(duì)象

對(duì)象(Objects)

在 LVGL 中,用戶界面的基本構(gòu)建塊是對(duì)象,也稱為小部件(widget)。例如,按鈕,標(biāo)簽,圖像,列表,圖表或文本區(qū)域。

查看 LVGL所有的對(duì)象類型(widget) 。

對(duì)象的屬性(Attributes)

對(duì)象的基本屬性

所有對(duì)象類型都共享一些基本屬性:

Position (位置)

Size (尺寸)

Parent (父母)

Drag enable (拖動(dòng)啟用)

Click enable (單擊啟用)

position (位置)

等等

我們可以使用 lv_obj_set _.。。 和 lv_obj_get _.。。 等前綴的函數(shù)設(shè)置或者獲取這些屬性。例如:

/* 設(shè)置基礎(chǔ)對(duì)象的屬性 */

lv_obj_set_size(btn1, 100, 50); /* 設(shè)置按鍵的大小 */

lv_obj_set_pos(btn1, 20,30); /* 設(shè)置按鍵的位置 */

對(duì)象的特殊屬性

有些對(duì)象類型也具有特殊的屬性。例如,滑塊具有

Min. max. values (最小最大值)

Current value (當(dāng)前值)

Custom styles (自定義樣式)

對(duì)于這些屬性,每種對(duì)象類型都有唯一的 API 函數(shù)。例如一個(gè)滑塊的 API 調(diào)用過程:

/* 設(shè)置滑塊的特殊屬性 */

lv_slider_set_range(slider1, 0, 100); /* 設(shè)置滑塊的最小值和最大值 */

lv_slider_set_value(slider1, 40, LV_ANIM_ON); /* 設(shè)置當(dāng)前值(屏幕坐標(biāo)系位置) */

lv_slider_set_action(slider1, my_action); /* 設(shè)置回調(diào)函數(shù) */

要查看 API 的實(shí)現(xiàn)代碼,可以檢查相應(yīng)的頭文件(例如滑塊對(duì)象的頭文件 lv_objx/lv_slider.h)

對(duì)象的工作機(jī)制

親子結(jié)構(gòu)

父對(duì)象可以作為其子對(duì)象的容器。每個(gè)對(duì)象只能一個(gè)父對(duì)象(屏幕除外),但是一個(gè)父對(duì)象可以有無限多個(gè)子對(duì)象。父對(duì)象的類型沒有限制,但是有特殊的父對(duì)象(例如,按鈕)和特殊的子對(duì)象(例如,標(biāo)簽)。

追隨原則

如果更改了父對(duì)象的位置,則子對(duì)象將與父對(duì)象一起移動(dòng),并且子對(duì)象的位置都保持相對(duì)于父對(duì)象位置不變。例如,坐標(biāo) (0,0) 表示子對(duì)象將獨(dú)立于父對(duì)象的位置保留在父對(duì)象的左上角,代碼:

pYYBAGDC0LqAJMlDAAATv2dZDjk853.jpg

一個(gè)父子對(duì)象

lv_obj_t * par = lv_obj_create(lv_scr_act(), NULL); /* 在當(dāng)前屏幕中創(chuàng)建一個(gè)對(duì)象 */

lv_obj_set_size(par, 100, 80); /* 設(shè)置對(duì)象的大小 */

lv_obj_t * obj1 = lv_obj_create(par, NULL); /* 基于前面創(chuàng)建的對(duì)象(par)創(chuàng)建一個(gè)子對(duì)象(obj1),之前的對(duì)像成為父對(duì)象 */

lv_obj_set_pos(obj1, 10, 10); /* 設(shè)置子對(duì)象的位置 */

當(dāng)我們修改父對(duì)象的位置,子對(duì)象也會(huì)一起移動(dòng),以保持和父對(duì)象的相對(duì)位置不變:

poYBAGDC0MCAcbFjAAAMTOzFifo552.jpg

子對(duì)象跟隨父對(duì)象

lv_obj_set_pos(par, 50, 50); /* 移動(dòng)父對(duì)象,子對(duì)象也會(huì)跟著移動(dòng),以保持相對(duì)位置不變 */

子對(duì)象僅在父對(duì)象的范圍內(nèi)可見

如果子對(duì)象的部分或全部不在其父級(jí)之內(nèi),則超出父對(duì)象的部分將不可見。

子對(duì)象超出父對(duì)象的部分不可見

pYYBAGDC0MaAOYs_AAAWYb5vagQ224.jpg

lv_obj_set_x(obj1, -30); /* 將子對(duì)象移出一部分到從父對(duì)象的范圍內(nèi)之外 */

創(chuàng)建-刪除對(duì)象

在LVGL中,可以在運(yùn)行時(shí)動(dòng)態(tài)地創(chuàng)建和刪除對(duì)象。這意味著僅當(dāng)前創(chuàng)建的對(duì)象需要消耗RAM。例如,如果需要圖表,我們可以在需要時(shí)創(chuàng)建它,并在不可見或不需要時(shí)將其刪除。

每個(gè)對(duì)象類型都有各自的創(chuàng)建函數(shù)。它需要兩個(gè)參數(shù):

指向父對(duì)象的指針。創(chuàng)建屏幕時(shí)以 NULL 作為父級(jí)。

用于復(fù)制具有相同類型的對(duì)象的指針(可選)。如果不行進(jìn)行復(fù)制操作為 NULL。

使用 lv_obj_t 指針作為句柄在 C 代碼中引用所有對(duì)象。以后可以使用該指針設(shè)置或獲取對(duì)象的屬性。

創(chuàng)建函數(shù)如下所示:

lv_obj_t * lv_ 《type》_create(lv_obj_t * parent, lv_obj_t * copy);

所有對(duì)象類型都有一個(gè)通用的刪除功能。它刪除對(duì)象及其所有子對(duì)象。

void lv_obj_del(lv_obj_t * obj);

lv_obj_del 將立即刪除該對(duì)象。如果出于某種原因不能立即刪除該對(duì)象,則可以使用 lv_obj_del_async(obj) ,例如,如果要?jiǎng)h除子對(duì)象的 LV_EVENT_DELETE 信號(hào)中對(duì)象的父對(duì)象,這很有用。

我們可以使用 lv_obj_clean 刪除對(duì)象的所有子對(duì)象(但不會(huì)刪除對(duì)象本身):

void lv_obj_clean(lv_obj_t * obj);

屏幕對(duì)象

創(chuàng)建屏幕對(duì)象

屏幕是沒有父對(duì)象的特殊對(duì)象。應(yīng)該像這樣創(chuàng)建它們:

lv_obj_t * scr1 = lv_obj_create(NULL, NULL);

可以使用任何對(duì)象類型創(chuàng)建屏幕。例如:創(chuàng)建墻紙的基礎(chǔ)對(duì)象或圖像。

獲取活動(dòng)屏幕

這始終是每個(gè)顯示屏上的活動(dòng)屏幕。默認(rèn)情況下,該庫為每個(gè)顯示創(chuàng)建并加載 “基礎(chǔ)對(duì)象” 作為屏幕。

要獲取當(dāng)前活動(dòng)的屏幕使用函數(shù) lv_scr_act()

載入屏幕

調(diào)用函數(shù) lv_scr_load(scr1) 加載屏幕。

加載屏幕動(dòng)畫

我們可以調(diào)用函數(shù):lv_scr_load_anim(scr, transition_type, time, delay, auto_del) 加載屏幕動(dòng)畫。參數(shù) transition_type 是動(dòng)畫過渡類型,該參數(shù)可設(shè)為:

LV_SCR_LOAD_ANIM_NONE 延遲x毫秒后立即切換

LV_SCR_LOAD_ANIM_OVER_LEFT/RIGHT/TOP/BOTTOM 將新屏幕移到給定方向上

LV_SCR_LOAD_ANIM_MOVE_LEFT/RIGHT/TOP/BOTTOM 將舊屏幕和新屏幕都移至給定方向

LV_SCR_LOAD_ANIM_FADE_ON 使新屏幕淡出舊屏幕

將 auto_del 設(shè)置為 true 會(huì)在動(dòng)畫結(jié)束時(shí)自動(dòng)刪除舊屏幕。

在延遲時(shí)間之后開始動(dòng)畫播放時(shí),新屏幕將變?yōu)榛顒?dòng)狀態(tài)(由 lv_scr_act() 返回)。

處理多個(gè)顯示

屏幕在當(dāng)前選擇的默認(rèn)屏幕上創(chuàng)建。默認(rèn)顯示設(shè)備使用 lv_disp_drv_register 注冊(cè)的最后一個(gè)屏幕作為顯示,或者可以使用 lv_disp_set_default(disp) 顯式選擇新的默認(rèn)顯示屏幕。

lv_scr_act() , lv_scr_load() 和 lv_scr_load_anim() 將會(huì)在默認(rèn)的屏幕上操作。

零件-Parts

widget 可以包含多個(gè) Parts 。例如,按鈕僅具有主要部分,而滑塊則由背景,指示器和旋鈕組成。

Parts 名稱的構(gòu)造類似于 LV_ + 《TYPE》 _PART_ 《NAME》 。比如 LV_BTN_PART_MAIN 、 LV_SLIDER_PART_KNOB 。通常在將樣式添加到對(duì)象時(shí)使用 Parts。使用 Parts 可以將不同的樣式分配給對(duì)象的不同 Parts 。

狀態(tài)-States

對(duì)象可以處于以下狀態(tài)的組合:

LV_STATE_DEFAULT 默認(rèn)或正常狀態(tài)

LV_STATE_CHECKED 選中或點(diǎn)擊

LV_STATE_FOCUSED 通過鍵盤或編碼器聚焦或通過觸摸板/鼠標(biāo)單擊

LV_STATE_EDITED 由編碼器編輯

LV_STATE_HOVERED 鼠標(biāo)懸停(現(xiàn)在還不支持)

LV_STATE_PRESSED 按下

LV_STATE_DISABLED 禁用或無效

當(dāng)用戶按下,釋放,聚焦等對(duì)象時(shí),狀態(tài)通常由庫自動(dòng)檢測(cè)更改。當(dāng)然狀態(tài)也可以手動(dòng)檢測(cè)更改。要完全覆蓋當(dāng)前狀態(tài),調(diào)用 lv_obj_set_state(obj, part, LV_STATE.。。) 要設(shè)置或清除某個(gè)狀態(tài)(但不更改其他狀態(tài)),調(diào)用 lv_obj_add/clear_state(obj, part, LV_STATE_.。。) 可以組合使用狀態(tài)值。例如: lv_obj_set_state(obj, part, LV_STATE_PRESSED | LV_PRESSED_CHECKED) 。

以上就關(guān)于在 LVGL 中,用戶界面的基本構(gòu)建塊之對(duì)象的介紹。

責(zé)任編輯:lq6

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 對(duì)象模
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    6140
  • LVGL
    +關(guān)注

    關(guān)注

    2

    文章

    124

    瀏覽量

    4574

原文標(biāo)題:LVGL基礎(chǔ)知識(shí)(一)

文章出處:【微信號(hào):gh_ed4f95bde4df,微信公眾號(hào):華芯微特32位MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    惠州雷曼入選國(guó)家知識(shí)產(chǎn)權(quán)示范企業(yè)創(chuàng)建對(duì)象

    近日,國(guó)家知識(shí)產(chǎn)權(quán)局正式公布了2025-2027年度國(guó)家知識(shí)產(chǎn)權(quán)強(qiáng)國(guó)建設(shè)示范創(chuàng)建對(duì)象名單。雷曼光電全資子公司——惠州雷曼,憑借其在知識(shí)產(chǎn)權(quán)創(chuàng)造、運(yùn)用、保護(hù)和管理方面的體系化優(yōu)勢(shì),成功入
    的頭像 發(fā)表于 03-03 16:36 ?769次閱讀

    鴻利智匯成功入選國(guó)家知識(shí)產(chǎn)權(quán)示范企業(yè)創(chuàng)建對(duì)象

    近日,國(guó)家知識(shí)產(chǎn)權(quán)局公示了2025—2027年知識(shí)產(chǎn)權(quán)強(qiáng)國(guó)建設(shè)示范創(chuàng)建對(duì)象名單,鴻利智匯集團(tuán)股份有限公司入選“國(guó)家知識(shí)產(chǎn)權(quán)示范企業(yè)創(chuàng)建對(duì)象
    的頭像 發(fā)表于 02-09 14:13 ?443次閱讀

    阻燃系列基礎(chǔ)知識(shí)

    我很榮幸有機(jī)會(huì)在這里與大家分享我對(duì)阻燃系列基礎(chǔ)知識(shí)的研究。今天,我們將探討的主題是“阻燃系列基礎(chǔ)知識(shí)”。在我們?nèi)粘I钪?,火?zāi)事故頻發(fā),造成巨大的財(cái)產(chǎn)損失和人員傷亡。因此,了解阻燃材料的基礎(chǔ)知識(shí)對(duì)于
    的頭像 發(fā)表于 02-06 08:07 ?310次閱讀
    阻燃系列<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    羅萊迪思入選國(guó)家知識(shí)產(chǎn)權(quán)示范企業(yè)創(chuàng)建對(duì)象

    近日,國(guó)家知識(shí)產(chǎn)權(quán)局正式公示了2025—2027年知識(shí)產(chǎn)權(quán)強(qiáng)國(guó)建設(shè)示范創(chuàng)建對(duì)象評(píng)審結(jié)果,杭州數(shù)智光科技“小龍”羅萊迪思憑借在知識(shí)產(chǎn)權(quán)領(lǐng)域的深厚積淀與實(shí)力成功入選國(guó)家
    的頭像 發(fā)表于 01-27 16:06 ?760次閱讀
    羅萊迪思入選國(guó)家<b class='flag-5'>知識(shí)</b>產(chǎn)權(quán)示范企業(yè)創(chuàng)建<b class='flag-5'>對(duì)象</b>

    芯原入選國(guó)家知識(shí)產(chǎn)權(quán)示范企業(yè)創(chuàng)建對(duì)象

    1月12日,國(guó)家知識(shí)產(chǎn)權(quán)局公示了“2025-2027年國(guó)家知識(shí)產(chǎn)權(quán)強(qiáng)國(guó)建設(shè)示范創(chuàng)建對(duì)象”的評(píng)審結(jié)果,芯原微電子 (上海) 股份有限公司憑借其在知識(shí)產(chǎn)權(quán)創(chuàng)造、運(yùn)用、管理和保護(hù)方面的扎實(shí)基
    的頭像 發(fā)表于 01-27 15:28 ?215次閱讀

    度亙核芯成功入選“國(guó)家知識(shí)產(chǎn)權(quán)示范企業(yè)創(chuàng)建對(duì)象

    近日,國(guó)家知識(shí)產(chǎn)權(quán)局正式公布2025-2027年新一批知識(shí)產(chǎn)權(quán)強(qiáng)國(guó)建設(shè)示范企業(yè)創(chuàng)建對(duì)象名單,度亙憑借在知識(shí)產(chǎn)權(quán)創(chuàng)造、運(yùn)用、保護(hù)、管理全鏈條的卓越表現(xiàn)成功入選。這一國(guó)家級(jí)榮譽(yù)的加持,既是
    的頭像 發(fā)表于 01-21 17:31 ?1297次閱讀
    度亙核芯成功入選“國(guó)家<b class='flag-5'>知識(shí)</b>產(chǎn)權(quán)示范企業(yè)創(chuàng)建<b class='flag-5'>對(duì)象</b>”

    無刷電機(jī)驅(qū)動(dòng)器的基礎(chǔ)知識(shí)

    本文將從技術(shù)角度出發(fā),對(duì)三相無刷電機(jī)的電機(jī)驅(qū)動(dòng)器的作用、種類和規(guī)格進(jìn)行介紹。通過本文,您可以學(xué)習(xí)到電機(jī)驅(qū)動(dòng)器選型所需的基礎(chǔ)知識(shí)
    的頭像 發(fā)表于 12-10 14:13 ?6691次閱讀
    無刷電機(jī)驅(qū)動(dòng)器的<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    RK?平臺(tái)?Vendor Storage?開發(fā)指南:基礎(chǔ)知識(shí)、流程與實(shí)用技巧

    備可靠性校驗(yàn)、掉電恢復(fù)等關(guān)鍵特性,是保障設(shè)備身份標(biāo)識(shí)、功能授權(quán)等核心信息安全的重要組件。本文將從基礎(chǔ)知識(shí)、開發(fā)流程、使用途徑三方面,為開發(fā)者梳理完整的開發(fā)邏輯。 一、核心基礎(chǔ)知識(shí):了解?Vendor Storage?是什么? 1.?核心定位與核心特性 Vendor Sto
    的頭像 發(fā)表于 11-22 07:11 ?670次閱讀
    RK?平臺(tái)?Vendor Storage?開發(fā)指南:<b class='flag-5'>基礎(chǔ)知識(shí)</b>、流程與實(shí)用技巧

    `lv_obj_tree.h` 在 **LVGL v9** 中的位置和作用

    /core/lv_obj_tree.h 核心作用 這個(gè)文件是 LVGL 核心模塊的一部分,主要負(fù)責(zé) UI 對(duì)象樹的管理,包括: 對(duì)象的父子關(guān)系維護(hù)(添加、刪除子
    發(fā)表于 11-13 15:49

    LVGL近期很多人問,那它和Qt哪個(gè)好?

    最近拜訪做工業(yè)控制、智能家居的客戶時(shí),常被問到同一個(gè)問題:嵌入式產(chǎn)品,GUI選LVGL還是Qt? 其實(shí)工具選擇沒有絕對(duì)的“好”與“壞”,但選對(duì)適配場(chǎng)景的GUI圖形用戶界面工具,能直接讓產(chǎn)品開發(fā)效率
    的頭像 發(fā)表于 09-23 15:54 ?1465次閱讀
    <b class='flag-5'>LVGL</b>近期很多人問,那它和Qt哪個(gè)好?

    視覺工程師必須知道的工業(yè)相機(jī)基礎(chǔ)知識(shí)

    工業(yè)相機(jī)基礎(chǔ)知識(shí)概述。
    的頭像 發(fā)表于 09-19 17:04 ?1311次閱讀
    視覺工程師必須知道的工業(yè)相機(jī)<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    簡(jiǎn)Modbus與MQTT的區(qū)別

    Modbus和MQTT是工業(yè)領(lǐng)域中兩種不同的通信協(xié)議,在設(shè)計(jì)目標(biāo)、應(yīng)用場(chǎng)景、通信模式等方面存在顯著差異,以下從多個(gè)維度簡(jiǎn)兩者的區(qū)別: 1.設(shè)計(jì)目標(biāo)與起源 Modbus 誕生于1979年,由施耐德
    的頭像 發(fā)表于 07-10 14:10 ?1002次閱讀

    從“代碼迷宮”到“視覺藍(lán)圖”——LVGL的嵌入式UI設(shè)計(jì)哲學(xué)!

    傳統(tǒng)嵌入式UI開發(fā)常陷入“邏輯與美感的博弈”,LVGL則重構(gòu)這一邏輯。其基于事件驅(qū)動(dòng)的架構(gòu)將界面元素解耦為獨(dú)立對(duì)象,開發(fā)者可通過狀態(tài)機(jī)模型定義交互行為。更驚艷的是,LVGL支持導(dǎo)入設(shè)計(jì)師輸出的SVG
    的頭像 發(fā)表于 05-12 16:33 ?1275次閱讀
    從“代碼迷宮”到“視覺藍(lán)圖”——<b class='flag-5'>LVGL</b>的嵌入式UI設(shè)計(jì)哲學(xué)!

    1-半導(dǎo)體基礎(chǔ)知識(shí)(童詩白、華成英主編)

    介紹了半導(dǎo)體基礎(chǔ)知識(shí),二極管,三極管。
    發(fā)表于 03-28 16:12

    效果器的基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《效果器的基礎(chǔ)知識(shí).doc》資料免費(fèi)下載
    發(fā)表于 03-26 14:30 ?7次下載