Text area_tr - rockcastle/lvgl GitHub Wiki
Written for v5.1 (rev.3)
Metin alanı, üzerinde etiket ve imleç bulunan bir sayfadır. İmleçin bulunduğu konuma metin veya karakter girerek eklenir:
lv_ta_add_char(ta, 'c')
lv_ta_add_text(ta, "insert this text")
lv_ta_set_text(ta, "New text")
fonksiyonu tüm metni değiştirir
Geçerli imleç pozisyonunun solundan bir karakter silmek için lv_ta_del()
kullanılır.
İmleç pozisyonu doğrudan lv_ta_set_cursor_pos(ta, 10)
fonksiyonuyla ya da adım atılarak değiştirilebilir:
lv_ta_cursor_right(ta)
lv_ta_cursor_left(ta)
lv_ta_cursor_up(ta)
lv_ta_cursor_down(ta)
Birkaç farklı imleç türü vardır. Bunlardan biri şu şekilde ayarlanabilir: lv_ta_set_cursor_type(ta, LV_CURSOR_...)
- LV_CURSOR_NONE
- LV_CURSOR_LINE
- LV_CURSOR_BLOCK
- LV_CURSOR_OUTLINE
- LV_CURSOR_UNDERLINE
İmleci gizlemek için 'OR' LV_CURSOR_HIDDEN kullanılabilir.
Metin alanı lv_ta_set_one_line(ta, true)
fonksiyonu ile çizgili olacak şekilde yapılandırılır.
Metin alanı şifre modunu destekler. lv_ta_set_pwd_mode(ta, true)
fonksiyonu ile etkinleştirilir.
Metin alanının bir öğesine yeni bir biçim ayarlamak için lv_ta_set_style(page, LV_TA_STYLE_..., &style)
fonksiyonu kullanılır:
-
LV_TA_STYLE_BG tüm style.body özelliklerini kullanan arka plan biçimi. Ayrıca etiket de style.label 'den bu biçimi kullanır. (varsayılan: lv_style_pretty)
-
LV_TA_STYLE_SB tüm style.body özelliklerini kullanan kaydırma çubuğunun biçimi (varsayılan: lv_style_transp)
-
LV_TA_STYLE_CURSOR imleç biçimi. NULL ise kütüphane, etiket rengine ve fontuna göre otomatik olarak biçim ayarlar.
- LV_CURSOR_LINE: style.line.width geniş bir çizgi ama style.body olarak bir dikdörtgen olarak çizilir. Yatay ve dikey dolgu imleç üzerinde ofset yapar.
- LV_CURSOR_BLOCK: style.body olarak bir dikdörtgen, yatay ve dikey olarak dolguyla dikdörtgeni büyütür.
- LV_CURSOR_OUTLINE: style.body olarak boş bir dikdörtgen(sadece kenarlık), yatay ve dikey olarak dolguyla dikdörtgeni büyütür.
- LV_CURSOR_UNDERLINE: style.line.width geniş çizgi ancak style.body şeklinde bir dikdörtgen çizildiğinde imleç üzerinde ofset yapar.
- Şifre modunda
lv_ta_get_text(ta)
yıldız karakterlerini değil gerçek metni verir.
/*Kaydırma çubuğunun biçimini ayarla*/
static lv_style_t style_sb;
lv_style_copy(&style_sb, &lv_style_plain);
style_sb.body.main_color = LV_COLOR_BLACK;
style_sb.body.grad_color = LV_COLOR_BLACK;
style_sb.body.border.color = LV_COLOR_WHITE;
style_sb.body.border.width = 1;
style_sb.body.border.opa = LV_OPA_70;
style_sb.body.radius = LV_RADIUS_CIRCLE;
style_sb.body.opa = LV_OPA_60;
/*Normal metin alanı oluştur*/
lv_obj_t * ta1 = lv_ta_create(lv_scr_act(), NULL);
lv_obj_set_size(ta1, 200, 100);
lv_obj_align(ta1, NULL, LV_ALIGN_CENTER, 0, - LV_DPI / 2);
lv_ta_set_style(ta1,LV_TA_STYLE_SB, &style_sb); /*Kaydırma çubuğu biçimini uygula*/
lv_ta_set_cursor_type(ta1, LV_CURSOR_BLOCK);
lv_ta_set_text(ta1, "A text in a Text Area\n"
"You can scroll it if the text is long enough."); /*İlk metni ayarla*/
lv_ta_set_cursor_pos(ta1, 2); /*İmleç konumunu ayarla*/
lv_ta_add_text(ta1, "long "); /*Geçerli imleç konumuna bir kelime ekle*/
static lv_style_t style_bg;
lv_style_copy(&style_bg, &lv_style_pretty);
style_bg.body.shadow.width = 8;
style_bg.text.color = LV_COLOR_MAKE(0x30, 0x60, 0xd0); /*Mavi etiket*/
/*Şifre modu ile tek çizgili bir test oluştur*/
lv_obj_t * ta2 = lv_ta_create(lv_scr_act(), ta1);
lv_obj_align(ta2, ta1, LV_ALIGN_OUT_BOTTOM_MID, 0, 50);
lv_ta_set_style(ta2,LV_TA_STYLE_BG, &style_bg); /*Arkaplan biçimini uygula*/
lv_ta_set_one_line(ta2, true);
lv_ta_set_cursor_type(ta2, LV_CURSOR_LINE);
lv_ta_set_pwd_mode(ta2, true);
lv_ta_set_text(ta2, "Password");