在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

簡析LVGL基礎(chǔ)知識之對象模塊

電子工程師 ? 來源:極客筆記 ? 作者:極客筆記 ? 2021-06-11 10:47 ? 次閱讀

概述

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

LVGL基礎(chǔ)知識之對象

對象(Objects)

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

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

對象的屬性(Attributes)

對象的基本屬性

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

Position (位置)

Size (尺寸)

Parent (父母)

Drag enable (拖動啟用)

Click enable (單擊啟用)

position (位置)

等等

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

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

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

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

對象的特殊屬性

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

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

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

Custom styles (自定義樣式)

對于這些屬性,每種對象類型都有唯一的 API 函數(shù)。例如一個滑塊的 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)的頭文件(例如滑塊對象的頭文件 lv_objx/lv_slider.h)

對象的工作機(jī)制

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

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

追隨原則

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

pYYBAGDC0LqAJMlDAAATv2dZDjk853.jpg

一個父子對象

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

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

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

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

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

poYBAGDC0MCAcbFjAAAMTOzFifo552.jpg

子對象跟隨父對象

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

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

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

子對象超出父對象的部分不可見

pYYBAGDC0MaAOYs_AAAWYb5vagQ224.jpg

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

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

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

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

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

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

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

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

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

所有對象類型都有一個通用的刪除功能。它刪除對象及其所有子對象。

void lv_obj_del(lv_obj_t * obj);

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

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

void lv_obj_clean(lv_obj_t * obj);

屏幕對象

創(chuàng)建屏幕對象

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

lv_obj_t * scr1 = lv_obj_create(NULL, NULL);

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

獲取活動屏幕

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

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

載入屏幕

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

加載屏幕動畫

我們可以調(diào)用函數(shù):lv_scr_load_anim(scr, transition_type, time, delay, auto_del) 加載屏幕動畫。參數(shù) transition_type 是動畫過渡類型,該參數(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 會在動畫結(jié)束時自動刪除舊屏幕。

在延遲時間之后開始動畫播放時,新屏幕將變?yōu)榛顒訝顟B(tài)(由 lv_scr_act() 返回)。

處理多個顯示

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

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

零件-Parts

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

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

狀態(tài)-States

對象可以處于以下狀態(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)用戶按下,釋放,聚焦等對象時,狀態(tài)通常由庫自動檢測更改。當(dāng)然狀態(tài)也可以手動檢測更改。要完全覆蓋當(dāng)前狀態(tài),調(diào)用 lv_obj_set_state(obj, part, LV_STATE.。。) 要設(shè)置或清除某個狀態(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)建塊之對象的介紹。

責(zé)任編輯:lq6

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

    關(guān)注

    0

    文章

    1

    瀏覽量

    6089
  • LVGL
    +關(guān)注

    關(guān)注

    1

    文章

    99

    瀏覽量

    3518

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

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

收藏 人收藏

    評論

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

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

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

    功率器件熱設(shè)計(jì)基礎(chǔ)知識

    功率器件熱設(shè)計(jì)是實(shí)現(xiàn)IGBT、碳化硅SiC等高功率密度器件可靠運(yùn)行的基礎(chǔ)。掌握功率半導(dǎo)體的熱設(shè)計(jì)基礎(chǔ)知識,不僅有助于提高功率器件的利用率和系統(tǒng)可靠性,還能有效降低系統(tǒng)成本。本文將從熱設(shè)計(jì)的基本概念、散熱形式、熱阻與導(dǎo)熱系數(shù)、功率模塊的結(jié)構(gòu)和熱阻分析等方面,對功率器件熱設(shè)計(jì)
    的頭像 發(fā)表于 02-03 14:17 ?563次閱讀

    儲能科普電池基礎(chǔ)知識

    利用這段時間給大家整理了五期儲能基礎(chǔ)知識的分享。 1、電池儲能系統(tǒng)ESS/BESS 電池儲能系統(tǒng)(Energy Storage System / Battery Energy Storage
    的頭像 發(fā)表于 01-27 17:37 ?923次閱讀
    儲能科普<b class='flag-5'>之</b>電池<b class='flag-5'>基礎(chǔ)知識</b>

    PCB繪制基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《PCB繪制基礎(chǔ)知識.pdf》資料免費(fèi)下載
    發(fā)表于 01-21 15:20 ?5次下載
    PCB繪制<b class='flag-5'>基礎(chǔ)知識</b>

    射頻前端設(shè)計(jì)中的功率等級基礎(chǔ)知識

    伴隨更多頻段的增加和愈發(fā)復(fù)雜的移動設(shè)備出現(xiàn),蜂窩通信市場已發(fā)生巨大變化。隨著4G和5G的部署,3GPP的最新規(guī)范已將PC2引入FDD頻段,更高的發(fā)射功率水平也由此帶來了與相關(guān)的全新挑戰(zhàn)。下面,就讓我們回顧一下PC2的基礎(chǔ)知識,并深入探討PC2如何隨著這些新的5G部署而演
    的頭像 發(fā)表于 01-07 11:26 ?1208次閱讀
    射頻前端設(shè)計(jì)中的功率等級<b class='flag-5'>基礎(chǔ)知識</b>

    EMC基礎(chǔ)知識-華為

    EMC基礎(chǔ)知識-華為
    發(fā)表于 01-06 14:09 ?2次下載

    品質(zhì)管理基礎(chǔ)知識

    品質(zhì)管理基礎(chǔ)知識
    的頭像 發(fā)表于 11-01 11:08 ?592次閱讀
    品質(zhì)管理<b class='flag-5'>基礎(chǔ)知識</b>

    TWL6030氣體監(jiān)測基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《TWL6030氣體監(jiān)測基礎(chǔ)知識.pdf》資料免費(fèi)下載
    發(fā)表于 10-29 10:02 ?0次下載
    TWL6030氣體監(jiān)測<b class='flag-5'>基礎(chǔ)知識</b>

    EMI傳導(dǎo)

    EMI傳導(dǎo)---20241024EMI傳導(dǎo)的基礎(chǔ)知識介紹EMI傳導(dǎo)的理論解析EMI傳導(dǎo)的實(shí)際測試EMI傳導(dǎo)模塊,本人10多年的電源工程師,一些個人經(jīng)驗(yàn)?
    發(fā)表于 10-24 16:32 ?5次下載

    Verilog HDL的基礎(chǔ)知識

    本文繼續(xù)介紹Verilog HDL基礎(chǔ)知識,重點(diǎn)介紹賦值語句、阻塞與非阻塞、循環(huán)語句、同步與異步、函數(shù)與任務(wù)語法知識
    的頭像 發(fā)表于 10-24 15:00 ?1002次閱讀
    Verilog HDL的<b class='flag-5'>基礎(chǔ)知識</b>

    負(fù)載開關(guān)基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《負(fù)載開關(guān)基礎(chǔ)知識.pdf》資料免費(fèi)下載
    發(fā)表于 10-08 09:56 ?2次下載
    負(fù)載開關(guān)<b class='flag-5'>基礎(chǔ)知識</b>

    全新的半導(dǎo)體基礎(chǔ)知識

    《全新的半導(dǎo)體基礎(chǔ)知識》首先對流行于電子書刊上數(shù)十年之久的經(jīng)典半導(dǎo)體基礎(chǔ)知識中存在的謬誤進(jìn)行了全方位的討論,然后以半導(dǎo)體內(nèi)部結(jié)構(gòu)為抓手,以G型半導(dǎo)體(客供電子型半導(dǎo)體)、H型半導(dǎo)體(主供電子型半導(dǎo)體
    的頭像 發(fā)表于 09-20 11:30 ?1825次閱讀
    全新的半導(dǎo)體<b class='flag-5'>基礎(chǔ)知識</b>

    超聲波傳感基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《超聲波傳感基礎(chǔ)知識.pdf》資料免費(fèi)下載
    發(fā)表于 09-04 10:21 ?0次下載
    超聲波傳感<b class='flag-5'>基礎(chǔ)知識</b>

    了解藍(lán)牙模塊串口通訊基礎(chǔ)知識

    許多嵌入式系統(tǒng)和物聯(lián)網(wǎng)(IoT)設(shè)備中廣泛應(yīng)用。以下是藍(lán)牙串口UART的一些基礎(chǔ)知識:一、UART基本概念接口又稱串口,又稱串行通信接口,一般也稱COM口,這是一個
    的頭像 發(fā)表于 09-02 16:16 ?2260次閱讀
    了解藍(lán)牙<b class='flag-5'>模塊</b>串口通訊<b class='flag-5'>基礎(chǔ)知識</b>

    C++語言基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《C++語言基礎(chǔ)知識.pdf》資料免費(fèi)下載
    發(fā)表于 07-19 10:58 ?8次下載
    主站蜘蛛池模板: 二区三区 | 一区二区中文字幕 | 一级福利视频 | avtom影院永久地址人人影院 | 五月激情婷婷丁香 | 台湾一级毛片 | 午夜激情啪啪 | 亚洲视频区 | 国产成年美女毛片80s | 亚洲成a人片在线网站 | 国产三片理论电影在线 | 国产高清免费 | 亚洲成人在线播放 | 亚洲综合精品一区二区三区中文 | 手机在线看片你懂得 | se视频在线观看 | 亚洲伊人电影 | 特级毛片免费看 | 天堂8在线天堂资源在线 | 日本免费性| 五月天婷婷综合网 | 国产在线播 | 高清成年美女xx免费网站黄 | 午夜久久久久久 | 午夜影院普通用户体验区 | 亚洲免费视频网址 | 日本黄黄 | 深夜动态福利gif动态进 | 免费高清视频在线观看 | 国产一级一片免费播放视频 | 人人人人草 | 大杳蕉伊人狼人久久一本线 | 亚洲一区二区三区不卡视频 | 黄色在线免费看 | 模特视频一二三区 | 国内精品久久久久久久久蜜桃 | 色多多视频在线 | 日本口工全彩无遮拦漫画大 | 色婷婷亚洲十月十月色天 | 国产中文99视频在线观看 | aaaaaa精品视频在线观看 |