日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LVGL学习 lv_label

發布時間:2023/12/10 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LVGL学习 lv_label 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • lv_label
        • 顯示文本
        • 類似printf格式化顯示文本
        • 顯示常量文本(靜態)
        • 長文本顯示模式
        • 文本著色
        • 文本選擇
        • 顯示圖標
        • 顯示中文字符
          • 1.自帶的中文字體
          • 2.自定義中文字體
        • 示例


lv_label

顯示文本

// 調用方式 lv_label_set_text(label,"Hello World"); // 換行模式 直接加 \n lv_label_set_text(label,"Hello\nWorld\n");// 原型 /*** Set a new text for a label. Memory will be allocated to store the text by the label.* @param label pointer to a label object* @param text '\0' terminated character string. NULL to refresh with the current text.*/ void lv_label_set_text(lv_obj_t * obj, const char * text);

類似printf格式化顯示文本

// 調用方式 lv_label_set_text_fmt(label,"%s,%d","String",15);// 原型 /*** Set a new formatted text for a label. Memory will be allocated to store the text by the label.* @param label pointer to a label object* @param fmt `printf`-like format* @example lv_label_set_text_fmt(label1, "%d user", user_num);*/ void lv_label_set_text_fmt(lv_obj_t * obj, const char * fmt, ...) LV_FORMAT_ATTRIBUTE(2, 3);

顯示常量文本(靜態)

// 調用方式 const char * constText = "Hello World"; // 這里要放全局常量 // static const char * constText = "Hello World"; // 或者這樣可以 lv_label_set_text_static(label,constText); // 調用// 原型 /*** Set a static text. It will not be saved by the label so the 'text' variable* has to be 'alive' while the label exists.* @param label pointer to a label object* @param text pointer to a text. NULL to refresh with the current text.*/ void lv_label_set_text_static(lv_obj_t * obj, const char * text);

長文本顯示模式

文本內容如果大于label元素寬高,就需要做一些調整

// 調用方式 lv_label_set_long_mode(label,LV_LABEL_LONG_…);// 原型 /*** Set the behavior of the label with longer text then the object size* @param label pointer to a label object* @param long_mode the new mode from 'lv_label_long_mode' enum.* In LV_LONG_WRAP/DOT/SCROLL/SCROLL_CIRC the size of the label should be set AFTER this function*/ void lv_label_set_long_mode(lv_obj_t * obj, lv_label_long_mode_t long_mode);/* 長文本模式的樣式,用于 "lv_label_ext_t" */ enum {LV_LABEL_LONG_WRAP, /**< (默認)文本如果太長 如果高度為LV_SIZE_CONTENT,標簽的高度將被擴展,否則文本將被剪裁。 */LV_LABEL_LONG_DOT, /**< 文本如果太長 將標簽右下角的最后 3 個字符替換為點 (.) */LV_LABEL_LONG_SCROLL, /**< 如果文本比標簽寬,則水平來回滾動它(來回滾動)。如果它更高,垂直滾動。只滾動一個方向,水平滾動的優先級更高 */LV_LABEL_LONG_SCROLL_CIRCULAR, /**< 如果文本比標簽寬,則水平滾動它(只往一個方向滾動,走馬燈效果)。如果它更高,垂直滾動。只滾動一個方向,水平滾動的優先級更高 */LV_LABEL_LONG_CLIP, /**< 裁剪掉超出標簽外的文本部分 */ }; typedef uint8_t lv_label_long_mode_t; // 注意,LV_LABEL_LONG_DOT 就地操作文本緩沖區以添加/刪除點。 // 所以在使用 lv_label_set_text 或 lv_label_set_array_text 時,都會分配一個單獨的緩沖區,都正常顯示。 // 但是 lv_label_set_text_static 不是這種情況,它傳入的是常量。如果打算使用 LV_LABEL_LONG_DOT,必須保證傳遞給 lv_label_set_text_static 的緩沖區必須是可寫的 否則就使用 lv_label_set_text。

文本著色

lv_label_set_recolor(label,true); // 開啟著色模式 // 開啟文本著色模式后 可以用一下方式設置文本的顏色 顏色和文本用 #包住 lv_label_set_text(label,"#顏色1 文本1# , #顏色2 文本2# , #顏色3 文本3#"); // 設置文本// 原型 /*** Enable the recoloring by in-line commands* @param label pointer to a label object* @param en true: enable recoloring, false: disable* @example "This is a #ff0000 red# word"*/ void lv_label_set_recolor(lv_obj_t * obj, bool en);

文本選擇

在 lv_conf.h 啟用了 LV_LABEL_TEXT_SELECTION,就可以選擇部分文本。在 PC 上使用鼠標選擇文本時類似。
但這個效果僅支持 lv_textarea
lv_label 僅支持用以下函數事先手動選擇文本

lv_label_get_text_selection_start(label, start_char_index); lv_label_get_text_selection_end(label, end_char_index);// 原型/*** @brief Get the selection start index.* @param obj pointer to a label object.* @return selection start index. `LV_LABEL_TEXT_SELECTION_OFF` if nothing is selected.*/ uint32_t lv_label_get_text_selection_start(const lv_obj_t * obj);/*** @brief Get the selection end index.* @param obj pointer to a label object.* @return selection end index. `LV_LABEL_TXT_SEL_OFF` if nothing is selected.*/ uint32_t lv_label_get_text_selection_end(const lv_obj_t * obj);

顯示圖標

lv_label_set_text(label,LV_SYMBOL_…); // 直接設置文本土ICON名稱 可以顯示一個圖標// 圖標的宏定義 #define LV_SYMBOL_AUDIO "\xef\x80\x81" /*61441, 0xF001*/ #define LV_SYMBOL_VIDEO "\xef\x80\x88" /*61448, 0xF008*/ #define LV_SYMBOL_LIST "\xef\x80\x8b" /*61451, 0xF00B*/ #define LV_SYMBOL_OK "\xef\x80\x8c" /*61452, 0xF00C*/ #define LV_SYMBOL_CLOSE "\xef\x80\x8d" /*61453, 0xF00D*/ #define LV_SYMBOL_POWER "\xef\x80\x91" /*61457, 0xF011*/ #define LV_SYMBOL_SETTINGS "\xef\x80\x93" /*61459, 0xF013*/ #define LV_SYMBOL_HOME "\xef\x80\x95" /*61461, 0xF015*/ #define LV_SYMBOL_DOWNLOAD "\xef\x80\x99" /*61465, 0xF019*/ #define LV_SYMBOL_DRIVE "\xef\x80\x9c" /*61468, 0xF01C*/ #define LV_SYMBOL_REFRESH "\xef\x80\xa1" /*61473, 0xF021*/ #define LV_SYMBOL_MUTE "\xef\x80\xa6" /*61478, 0xF026*/ #define LV_SYMBOL_VOLUME_MID "\xef\x80\xa7" /*61479, 0xF027*/ #define LV_SYMBOL_VOLUME_MAX "\xef\x80\xa8" /*61480, 0xF028*/ #define LV_SYMBOL_IMAGE "\xef\x80\xbe" /*61502, 0xF03E*/ #define LV_SYMBOL_ENVELOPE "\xef\x83\xa0" /*61664, 0xF0E0*/ #define LV_SYMBOL_EDIT "\xef\x8C\x84" /*62212, 0xF304*/ #define LV_SYMBOL_TINT "\xef\x81\x83" /*61507, 0xF043*/ #define LV_SYMBOL_PREV "\xef\x81\x88" /*61512, 0xF048*/ #define LV_SYMBOL_PLAY "\xef\x81\x8b" /*61515, 0xF04B*/ #define LV_SYMBOL_PAUSE "\xef\x81\x8c" /*61516, 0xF04C*/ #define LV_SYMBOL_STOP "\xef\x81\x8d" /*61517, 0xF04D*/ #define LV_SYMBOL_NEXT "\xef\x81\x91" /*61521, 0xF051*/ #define LV_SYMBOL_EJECT "\xef\x81\x92" /*61522, 0xF052*/ #define LV_SYMBOL_LEFT "\xef\x81\x93" /*61523, 0xF053*/ #define LV_SYMBOL_RIGHT "\xef\x81\x94" /*61524, 0xF054*/ #define LV_SYMBOL_PLUS "\xef\x81\xa7" /*61543, 0xF067*/ #define LV_SYMBOL_MINUS "\xef\x81\xa8" /*61544, 0xF068*/ #define LV_SYMBOL_EYE_OPEN "\xef\x81\xae" /*61550, 0xF06E*/ #define LV_SYMBOL_EYE_CLOSE "\xef\x81\xb0" /*61552, 0xF070*/ #define LV_SYMBOL_WARNING "\xef\x81\xb1" /*61553, 0xF071*/ #define LV_SYMBOL_SHUFFLE "\xef\x81\xb4" /*61556, 0xF074*/ #define LV_SYMBOL_UP "\xef\x81\xb7" /*61559, 0xF077*/ #define LV_SYMBOL_DOWN "\xef\x81\xb8" /*61560, 0xF078*/ #define LV_SYMBOL_LOOP "\xef\x81\xb9" /*61561, 0xF079*/ #define LV_SYMBOL_DIRECTORY "\xef\x81\xbb" /*61563, 0xF07B*/ #define LV_SYMBOL_UPLOAD "\xef\x82\x93" /*61587, 0xF093*/ #define LV_SYMBOL_CALL "\xef\x82\x95" /*61589, 0xF095*/ #define LV_SYMBOL_CUT "\xef\x83\x84" /*61636, 0xF0C4*/ #define LV_SYMBOL_COPY "\xef\x83\x85" /*61637, 0xF0C5*/ #define LV_SYMBOL_SAVE "\xef\x83\x87" /*61639, 0xF0C7*/ #define LV_SYMBOL_BARS "\xef\x83\x89" /*61641, 0xF0C9*/ #define LV_SYMBOL_CHARGE "\xef\x83\xa7" /*61671, 0xF0E7*/ #define LV_SYMBOL_PASTE "\xef\x83\xAA" /*61674, 0xF0EA*/ #define LV_SYMBOL_BELL "\xef\x83\xb3" /*61683, 0xF0F3*/ #define LV_SYMBOL_KEYBOARD "\xef\x84\x9c" /*61724, 0xF11C*/ #define LV_SYMBOL_GPS "\xef\x84\xa4" /*61732, 0xF124*/ #define LV_SYMBOL_FILE "\xef\x85\x9b" /*61787, 0xF158*/ #define LV_SYMBOL_WIFI "\xef\x87\xab" /*61931, 0xF1EB*/ #define LV_SYMBOL_BATTERY_FULL "\xef\x89\x80" /*62016, 0xF240*/ #define LV_SYMBOL_BATTERY_3 "\xef\x89\x81" /*62017, 0xF241*/ #define LV_SYMBOL_BATTERY_2 "\xef\x89\x82" /*62018, 0xF242*/ #define LV_SYMBOL_BATTERY_1 "\xef\x89\x83" /*62019, 0xF243*/ #define LV_SYMBOL_BATTERY_EMPTY "\xef\x89\x84" /*62020, 0xF244*/ #define LV_SYMBOL_USB "\xef\x8a\x87" /*62087, 0xF287*/ #define LV_SYMBOL_BLUETOOTH "\xef\x8a\x93" /*62099, 0xF293*/ #define LV_SYMBOL_TRASH "\xef\x8B\xad" /*62189, 0xF2ED*/ #define LV_SYMBOL_BACKSPACE "\xef\x95\x9A" /*62810, 0xF55A*/ #define LV_SYMBOL_SD_CARD "\xef\x9F\x82" /*63426, 0xF7C2*/ #define LV_SYMBOL_NEW_LINE "\xef\xA2\xA2" /*63650, 0xF8A2*/

顯示中文字符

1.自帶的中文字體

lvgl自帶有1000個中文字體 可以在 lv_conf.h 里打開

// @lv_conf.h ... #define LV_FONT_MONTSERRAT_48 0/* Demonstrate special features */ #define LV_FONT_MONTSERRAT_12_SUBPX 0 #define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/ #define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, Perisan letters and all their forms*/ #define LV_FONT_SIMSUN_16_CJK 1 /*1000 most common CJK radicals*/ // 【這里改成1】/* Pixel perfect monospace fonts */ #define LV_FONT_UNSCII_8 0 #define LV_FONT_UNSCII_16 0 ...

然后就可以使用中文字體了

lv_obj_set_style_text_font(label, &lv_font_simsun_16_cjk,0); // 設置系統自帶的中文字體 lv_label_set_text(label,"你好世界 Hello World"); // 設置文本
2.自定義中文字體

需要準備兩樣東西 字體文件 and 字體轉換器
lvgl官方字體轉換器地址:https://

lvgl.io/tools/fontconverter

常用495個漢字

雕虎的一了是我不在人們有來他這上著個地到大里說就去子得也和那要下看天時過出小么起你都把好還多沒為又可家學只以主會樣年想生同老中十從自面前頭道它后然走很像見兩用她國動進成回什邊作對開而己些現山民候經發工向事命給長水幾義三聲于高手知理眼志點心戰二問但身方實吃做叫當住聽革打呢真全才四已所敵之最光產情路分總條白話東席次親如被花口放兒常氣黃五第使寫軍木珍吧文運再果怎定許快明行因別飛外樹物活部門無往船望新帶隊先力完卻站代員機更九您每風級跟笑啊孩萬少直意夜比階連車重便斗馬哪化太指變社似士者干石滿梅日決百原拿群究各六本思解立河村八難早論嗎根共讓相研今其書坐接應關信覺步反處記將千找爭領或師結塊跑誰草越字加腳緊愛等習陣怕月青半火法題建趕位唱海七女任件感準張團屋離色臉片科倒睛利世剛且由送切星導晚表夠整認響雪流未場該并底深刻平偉忙提確近亮輕講農古黑告界拉名呀土清陽照辦史改歷轉畫造嘴此治北必服雨穿內識驗傳業菜爬睡興形量咱觀苦體眾通沖合破友度術飯公旁房極南槍讀沙歲線野堅空收算至政城勞落錢特圍弟勝教熱展包歌類漸強數鄉呼音答哥際舊神座章幫啦受系令跳非何牛取入岸敢掉忽種裝頂急戴林停息句區衣般報葉壓慢叔背細艷佐

常用3500個漢字

一丁七萬丈三三上下不與丐丑專且世丘丙業叢東絲丟兩嚴喪個中豐串臨丸丹為主麗舉乃久么義之烏乍乎乏樂乒乓喬乖乘乙九乞也習鄉書買亂乳了予爭事二于虧云互五井亞些亡交亥亦產畝享京亭亮親人億什仁僅仆仇今介仍從侖倉仔他仗付仙代令以儀們仰仲件價任份仿企伊伍伏伐休眾優伙會傘偉傳傷倫偽伯估伴伶伸伺似佃但位低住佑體何余佛作你傭佩佳使侄侈例侍供依俠侶僥偵側僑侮侯侵便促俄俊俏俐俗俘保信倆儉修俯俱俺倍倒倔倘候倚借倡倦債值傾假偎偏做停健偶偷償傀傅傍儲催傲傻像僚僧僵僻儒儡兒允元兄充兆先光克免兌兔黨兜兢入全八公六蘭共關興兵其具典養兼獸冀內岡冊再冒冕冗寫軍農冠冤冬馮冰沖決況冶冷凍凈凄準涼凌減湊凜凝幾凡鳳鳧憑凱凰凳兇凸凹出擊函鑿刀刁刃分切刊刑劃列劉則剛創初刪判刨利別刮到制刷券剎刺刻劊劑剃削前劍剔剖剝劇剩剪副割剿劈力勸辦功加務劣動助努劫勵勁勞勢勃勇勉勛勒勘募勤勺勾勿勻包匆匈匕化北匙匠匣匪匹區醫匾匿十千升午半華協卑卒卓單賣南博卜占卡盧鹵卦臥衛印危即卻卵卷卸卿廠廳歷厲壓厭廁厘厚原廂廈廚去縣參又叉及友雙反發叔取受變敘叛疊口古句另叨只叫召叭叮可臺史右葉號司嘆叼嘰吁吃各吆合吉吊同名后吏吐向嚇呂嗎君吝吞吟吠否吧噸吩含聽吭吮啟吱吳吵吸吹吻吼呀呆呈告吶嘔員嗆嗚呢周味呵呻呼命咆和詠咐咒咕咖嚨咧咨咪咬咱咳咸咽哀品哄哆哈響哎啞嘩喲哥哨哩哪哭哮哲哺哼唁唆唇唉唐嘮喚唧唬售唯唱唾啃啄商啊啡啤啥啦啰嘯啼喂善喇喉喊喘喜喝喧喳噴喻嗅嗓嗜嗡嗤嗦嗽嘀嘁嘉囑嘲嘴嘶嘹嘿器噩噪嚎囂嚷嚼囊囚四回因團囤園困囪圍固國圖圃圓圈土圣在地場圾址均坊坎壞坐坑塊堅壇壩塢墳墜坡坤坦坪坯坷垂垃壟型壘垛垢墾墊垮埂埃埋城域埠培基堂堆墮堡堤堪堰堵塌塑塔塘塞填境墅墓墻增墨墩壁壕壤士壯聲殼壺壹處備復夏夕外多夜夠大天太夫夭央夯失頭夷夸夾奪奄奇奈奉奮奏契奔奕獎套奠奢奧女奴奶奸她好如妄妝婦媽妒妓妖妙妥妨妹妻姆姊始姐姑姓委姚姜姥姨姻姿威娃婁嬌娘娜娩娛娶婆婉婚嬰嬸婿媒媚媳嫁嫂嫉嫌嫡嫩嬉子孔孕字存孫孝孟季孤學孩孵孽寧它宅宇守安宋完宏宗官宙定宛宜寶實寵審客宣室宦憲宮宰害宴宵家容寬賓宿寂寄密寇富寒寓寢寞察寡寥寨寸對寺尋導壽封射將尉尊小少爾尖塵尚嘗尤就尸尺尼盡尾尿局屁層居屈屜屆屋屎屏屑展屬屠屢履屯山屹嶼歲豈岔嶇崗島巖嶺岳岸峽巒峭峰峻崇崎崔崖崩嶄嵌巍川州巡巢工左巧巨鞏巫差己已巴巷巾幣市布帥帆師希帳帕帖簾帚幟帝帶席幫常帽幅幌幔幕幢干干平年并幸幻幼幽廣莊慶庇床序廬庫應底店廟府龐廢度座庭庵庶康庸廉廊廓延廷建開異棄弄弊式弓引弛弟張彌弦弧彎弱彈強歸當錄形彤彩彪彬彭彰影役徹彼往征徑待很徊律徐徒徒得徘御循微德徽心必憶忌忍志忘忙忠憂快忱念忽忿懷態怎怒怔怕怖憐思怠急性怨怪怯總恃戀恍恐恒恕恢恤恨恩恬恭息恰懇惡惱悄悉悍悔悟悠患悅您懸憫悲悴悼情驚惋惑惕惜惠惦懼慘懲憊慚慣惰想惶惹愁愈愉意愕愚感憤愧愿慈慌慎慕慢慧慨慰慷憋憎憔憨憾懂懈懊懶懦戈戲成我戒或戰戚截戳戴戶房所扁扇手才扎撲扒打扔托扛扣執擴掃揚扭扮扯擾扳扶批扼找承技抄把抑抒抓投抖抗折撫拋摳掄搶護報披抬抱抵抹押抽拂拄擔拆拇拉拌拍拐拒拓拔拖拗拘拙招拜擬攏揀擁攔擰撥擇括拭拯拱拳拴拷拼拾拿持掛指按挎挑挖摯挾撓擋掙擠揮挨挪挫振挺挽捂捅捆捉捌捍捎捏捐捕撈損撿換搗捧據捶捷捺捻掀掂授掉掌掏掐排掖掘掠探接控推掩措掰擲撣摻揉揍描提插揖握揣揩揪揭援攬攙擱摟攪搏搓搔搜搞搪搬搭攜攝擺搖攤摔摘摧摩摸摹撇撐撒撕撞撤撩撬播撮撰攆撼擂擅操擎擒擦攀攢攘支收改攻放政故效敵敏救教斂敞敢散敦敬數敲整敷文齋斑斗料斜斟斤斥斧斬斷斯新方施旁旅旋族旗無既日旦舊旨早旬旭旱時曠旺昂昆昌明昏易昔曇星映春昧昨昭是昵晝顯晃晉晌曬曉暈晚晤晦晨普景晰晴晶智晾暫暇暑暖暗暮暴曙曲更曹曼曾替最月有朋服朗望朝期朦木未末本術朱樸朵機朽殺雜權桿杈杉李杏材村杖杜束杠條來楊杭杯杰松板極構枉析枕林枚果枝樞棗槍楓枯架枷柄柏某柑柒染柔柜檸查柬柱柳柴柿柵標棧棟欄樹栓棲栗校株樣核根格栽桂桃桅框案桌桐桑檔橋樺槳樁桶梁梅梆梗梢夢梧梨梭梯械梳檢棉棋棍棒棕棘棚棠森棱棵棺椅植椎椒橢椰椿楔楚楞楣楷樓概欖榆榔榕榛榜榨榴槐槽樊樟模橫櫻橄橘橙橡櫥檀檐檁檬欠次歡欣歐欲欺款歇歉歌止正此步武歧歪歹死殲殃殉殊殘殖毆段殷殿毀毅母每毒比畢斃毛氈毫毯氏民氓氣氛氫氧氨氮氯水永汁求匯漢汗汛汞江池污湯汪汰洶汽沃沈沉沐沙沛溝沒瀝淪滄滬沫沮河沸油治沼沽沾沿泄泉泊泌法泛濘泡波泣泥注淚泰泳泵瀉潑澤潔洋灑洗洛洞津洪洲活洼洽派流淺漿澆濁測濟渾濃浙浦浩浪浮浴海浸涂消涉涌涎涕濤澇渦渙滌潤澗漲澀涮涯液涵淀淆淋淌淑淘淡淤淫淮深淳混淹添清淵漸漁滲渠渡渣渤溫港渴游渺湃湖湘灣濕潰濺溉源溜溢溪溯溶溺滋滑滓滔滾滯滿濾濫濱灘滴漂漆漏漓演漠漩漫漱漾潘潛潦潭潮澄澈澎瀾澡澳激瀕瀑灌火滅燈灰靈灶灸灼災燦爐炊炎炒炕炫炬炭炮炸點煉爍爛烈烘烙燭煙烤煩燒燙熱烹焊煥焙焚焦焰然煌煎煞煤照煮熄熊熏熔熙熟熬燃燎燕燥爆爪爬愛爵父爺爸爹爽片版牌牘牙牛牡牢牧物牲牽特犧犀犁犬犯狀猶狂狽狐狗獰狠狡獨狹獅猙獄貍狼獵猖猛猜猩豬貓猬獻猴猾猿玄率玉王玖瑪玩玫環現玲玷玻珊珍珠班球瑯理琉瑣琢琳琴瓊瑞瑟瑰璃璧瓜瓢瓣瓤瓦甕瓶瓷甘甚甜生甥用甩甫田由甲申電男甸畫暢界畏畔留畜略畦番疇畸疆疏疑療疙疚瘧疤疫瘡瘋疲疹疼疾病癥痊癢痕痘痛痢瘓痰癡痹瘟瘤瘦瘩癟癱瘸癮癌癩癬登白百皂的皆皇皮皺皿盅盆盈益盞鹽監盒盔蓋盜盤盛盟目盯盲直相盹盼盾省眉看真眠眨瞇眶眷眼著睜睛睡督睦睬睹瞄瞎瞞瞧瞪瞬瞭瞳瞻矗矛矢知矩矯短矮石礬礦碼砂砌砍研磚硯砰破砸礫礎硅碩硝硫硬確硼碉碌礙碎碑碗碘碟碧碰堿碳碴碾磁磅磕磨磷磺礁示禮社祈祖祝神祟祠祥票祭禱禍稟禁福離禽禾秀私禿稈秉秋種科秒秕秘租秤秦秧秩秫積稱秸移穢稀程稍稅稚稠穩稻稼稽稿穆穗穴究窮空穿突竊窄竅窯窒窖窗窘竄窩窟窺窿立豎站競竟章竣童竭端竹竿笆筍笑筆笙笛笤符笨第籠等筋筏筐筑筒答策篩箏筷籌簽簡箍箕算管籮簫箭箱篇簍篙篡籃籬篷簇簸簿籍米類籽粉粒粗粘粟粵粥糞糧粱粹精糊糕糖糙糜糟糠糯系紊素索緊紫累絮繁糾紅纖約級紀紉緯純紗綱納縱紛紙紋紡紐線練組紳細織終絆紹繹經綁絨結繞繪給絡絕絞統絹繡繼績緒續綽繩維綿繃綢綜綻綠綴緬纜緞緩締縷編緣縛縫纏繽纓縮繚韁繳缸缺罐網罕羅罰罷罩罪置署羊美羔羞羨群羹羽翁翅翎翔翹翠翩翰翻翼耀老考者而耍耐耕耕耗耙耳聳恥耽耿聶聊聾職聯聘聚聰肅肄肆肉肋肌肖肘肚肛肝腸股肢膚肥肩肪骯肯育肴肺腎腫脹脅胃膽背胎胖胚勝胞胡朧胯胰胳膠胸能脂脆脈脊臟臍腦膿脖腳脯脫臉脾臘腋腌腐腔腕腥腮腰腹腺膩騰腿膀膊膏膘膛膜膝膨膳臀臂臊臣自臭至致臼舀舅輿舌舍舒舔舞舟航般艦艙舵舶舷船艇艘良艱色艷藝艾節芋芍芒芙蕪芝芥蘆芬芭芯花芳芹芽葦蒼蘇苔苗苛苞茍若苦苫英蘋茁茂范茄茅茉莖繭茫茬茴茵茶茸荊草薦荒荔莢蕎薺蕩榮葷熒藥荷荸莉莫萊蓮獲瑩鶯莽菇菊菌菜菠菩菱菲萄萌萍萎蘿螢營蕭薩落著葛葡董葫葬蔥葵蒂蔣蒙蒜蒲蒸蒿蓄蓉蓖藍蓬蔑蔓蔗蔚蔫蔬藹蔽蕉蕊蘊蕾薄薇薛薪薯藏藐藕藤藻蘑蘸虎虜虐慮虛蟲虱虹雖蝦蝕蟻螞蚊蚌蚓蠶蚜蚣蚤蚪蚯蛀蛆蛇蛉蛋蛔蛙蛛蛤蠻蛹蛾蜀蜂蜈蜒蜓蛻蝸蜘蜜蠟蜻蠅蟬蝌蝎蝗蝙蝠蝴蝶螃融螟螺蟀蟆蟋蟹蠕蠢血釁行衍銜街衙衡衣補表衩衫襯衰衷袁襖袋袍袒袖襪被襲袱裁裂裝襠裉裕裙褲裳裸裹褂褐褒褥襟西要覆見觀規覓視覽覺角解觸言譽謄誓警譬計訂認譏討讓訓議訊記講諱訝許訛論訟諷設訪訣證評詛識詐訴診詞譯試詩誠話誕詭詢該詳誡誣語誤誘誨說誦請諸諾讀誹課誰調諒諄談誼謀諜謊諧謁謂諺謎謝謠謗謙謹謬譚譜譴谷豁豆豌象豪豫豹豺貌貝貞負貢財責賢敗賬貨貨質販貪貧貶購貯貫貳賤貼貴貿費賀賊賈賄賃賂贓資賒賦賭贖賞賜賠賴贅賺賽贊贈贍贏赤赦赫走赴趙趕起趁超越趨趟趣足趴趾躍跋跌跑跛距跟跨跪路跳踐蹺跺踴踏踢踩蹤踱蹂蹄蹈蹋蹦蹬蹭蹲躁躪身躬軀躲躺車軋軌軒轉輪軟轟軸輕載轎較輔輛輩輝輻輯輸轅轄轍辛辜辭辟辣辨辯辮辰辱邊遼達遷迂迄迅過邁迎運近返還這進遠違連遲迫述迷跡追退送適逃逆選遜透逐遞途逗通逛逝逞速造逢逮逸邏逼逾遂遇遍遏道遺遣遙遭遮遵避邀邑鄧邢那邦邪郵鄰郁郊郎鄭部郭都鄙酌配酒酗醞酣酥酪酬醬酵酷酸釀醇醉醋醒采釋里重野量金鑒針釘釣鈣鈍鈔鐘鈉鋼鑰欽鈞鉤鈕錢鉗鉆鉀鐵鈴鉛鉚銬鐺銅鋁鍘銑銘鏟銀鑄鋪鏈銷鎖鋤鍋銹銼鋒鋅銳錯錨錫鑼錘錐錦锨錠鍵鋸錳鍬鍛鍍鎮鑷鎬鏡鐐鐮鑲長門閃閉問闖閏閑間悶閘鬧閨聞閩閥閣閱閻闡闊隊阱防陽陰陣階阻阿附際陸陳陋陌降限陜陡院除隕險陪陵陶陷隅隆隨隱隔隘隙障隧隸難雀雁雄雅集雇雌雛雕雨雪靂零雷雹霧需震霉霍霎霜霞露霸霹青靖靜非靠靡面革靴靶鞋鞍鞠鞭韌韓韭音韻頁頂頃項順須頑顧頓頒頌預顱領頗頸頰頻頹穎顆題顏額顛顫風颯飄飛食餐饑飯飲飾飽飼餌饒餃餅餓餒餡館饞饃餾饅首香馬馱馴馳驅駁驢駛駒駐駝駕罵驕駱駭驗駿騎騙騷騾驟骨髓高鬢鬼魁魂魄魏魔魚魯鮮鯉鯽鯨鱷鰭鱉鱗鳥鳩雞鳴鷗鴉鴨鴦鴛鴕鴿鴻鵑鵝鵡鵲鵬鶴鸚鷹鹿麥麩麻黃黍黎黑黔默鼎鼓鼠鼻齊齒齡龍龜

字體轉換好后 將得到的.c文件添加到項目中

然后就可以使用自定義的中文字體了

lv_obj_set_style_text_font(label, &si_yuan_hei_ti_normal,0); // 設置自定義的中文字體 lv_label_set_text(label,"你好世界(自定義)Hello World"); // 設置文本 // 百問網介紹的很詳細 http://lvgl.100ask.net/8.2/tools/fonts-zh-source.html?highlight=%E4%B8%AD%E6%96%87

示例

void test_draw_label(void) {/* 創建元素 */static lv_obj_t * label;label = lv_label_create( lv_scr_act() ); #if 1static const char * constText = "Hello World Const"; // 常量文本lv_label_set_text_static(label,constText); // 設置文本 常量 #elselv_label_set_text(label,"Hello World"); // 設置文本 #endiflv_obj_set_pos(label,30,100); // 設置位置/* 設置樣式 */static lv_style_t style_label;lv_style_init(&style_label);lv_style_set_bg_color(&style_label,lv_color_hex(0x000000)); // 設置背景色lv_style_set_bg_opa(&style_label,0x88); // 設置背景透明度lv_style_set_text_color(&style_label,lv_color_hex(0xFFFFFF)); // 設置文本顏色lv_obj_add_style(label,&style_label,0); // 添加樣式/* 長文本模式 */static lv_obj_t * label_long;label_long = lv_label_create( lv_scr_act() ); #if 1static char charTextLong[] = {"1234567890abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ"}; // 常量文本lv_label_set_text_static(label_long,charTextLong); // 設置文本 常量 #elselv_label_set_text(label_long,"1234567890abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ"); // 設置文本 #endiflv_obj_set_pos(label_long,30,200); // 設置位置lv_obj_set_size(label_long,80,50); // 設置大小lv_obj_add_style(label_long,&style_label,0); // 添加樣式lv_obj_set_style_bg_color(label_long,lv_color_hex(0xFF00FF),0); // 設置背景色lv_label_set_long_mode(label_long,LV_LABEL_LONG_DOT); // 設置長文本模式 超出部分不顯示,在顯示3個點/* 文本著色 */static lv_obj_t * label_color;label_color = lv_label_create( lv_scr_act() );lv_label_set_recolor(label_color,true); // 開啟著色模式lv_obj_center(label_color); // 居中文本lv_label_set_text(label_color,"TEXT: #FF0000 Red# , #00FF00 Green# , #0000FF Blue#"); // 設置文本/* 文本選擇 */static lv_obj_t * label_select;label_select = lv_label_create( lv_scr_act() );lv_obj_align(label_select,LV_ALIGN_BOTTOM_MID,0,-100);lv_label_set_text(label_select,"SELECT TEXT"); // 設置文本lv_label_set_text_sel_start(label_select, 1); // 從索引值1開始選擇文本lv_label_set_text_sel_end(label_select, 5); // 索引值到5結束lv_obj_set_style_bg_color(label_select,lv_color_hex(0xFFFF00),LV_PART_SELECTED); // 設置選中文本的背景顏色/* 顯示圖標 */static lv_obj_t * label_icon;label_icon = lv_label_create( lv_scr_act() );lv_obj_align(label_icon,LV_ALIGN_BOTTOM_MID,0,-100); #if 0lv_label_set_text(label_icon,LV_SYMBOL_OK); // 顯示一個圖標 #endif #if 1lv_label_set_text(label_icon,"THIS IS "LV_SYMBOL_WIFI" ICON"); // 顯示圖標 與文本 #endif #if 0lv_label_set_text(label_icon,LV_SYMBOL_OK LV_SYMBOL_GPS LV_SYMBOL_WIFI); // 顯示多個圖標 #endif }

顯示中文字體 示例

void test_draw_label_chinese(void) {/* 用自帶的中文字體 顯示(注意:在lv_conf.h里要先打開字體宏定義) (字庫沒有的字體就不會顯示) */static lv_obj_t * label_chinese;label_chinese = lv_label_create( lv_scr_act() );lv_obj_align(label_chinese,LV_ALIGN_TOP_LEFT,0,10);lv_obj_set_style_text_font(label_chinese, &lv_font_simsun_16_cjk,0); // 設置字體lv_label_set_text(label_chinese,"你好世界 Hello World"); // 設置文本/* 用自定義的中文字體 顯示(注意:要先做好字庫并添加到項目) */LV_FONT_DECLARE(si_yuan_hei_ti_normal); // 聲明字體static lv_obj_t * label_user_chinese;label_user_chinese = lv_label_create( lv_scr_act() );lv_obj_align(label_user_chinese,LV_ALIGN_TOP_LEFT,0,60);lv_label_set_text(label_user_chinese,"你好世界 自定義字體"); // 設置文本lv_obj_set_style_text_font(label_user_chinese, &si_yuan_hei_ti_normal,0); // 設置字體 } // 注意:如果文字顯示不對,注意檢查配置編譯運行字體為utf-8

總結

以上是生活随笔為你收集整理的LVGL学习 lv_label的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。