1. Das Konzept der LVGL-GUI-Fenstersteuerung
Das Fenster ist ein Container-ähnliches Objekt, das aus einem Titel mit einem Titel, Schaltflächen und einem Inhaltsbereich besteht.
2. LVGL-GUI-Widgets und -Stile
Der Hauptteil ist LV_WIN_PART_BG, der zwei weitere Realteile enthält:
- LV_WIN_PART_HEADER: Ein Header-Container oben mit einer Kopfzeile und Steuerschaltflächen
- Der scrollbare Teil des Inhalts unter dem Header LV_WIN_PART_CONTENT_SCRL.
Darüber hinaus hat LV_WIN_PART_CONTENT_SCRL einen Bildlaufleistenabschnitt namens LV_WIN_PART_CONTENT_SCRL. Weitere Einzelheiten zu Bildlaufleisten finden Sie in der Dokumentation der Seite.
Alle Widgets unterstützen typische Hintergrundeigenschaften. Der Titel verwendet die Texteigenschaft des Titelabschnitts.
Die Höhe der Steuerschaltfläche ist: Höhe der Titelleiste - Kopfzeile padding_top - Kopfzeile padding_bottom.
3. Die Verwendung von LVGL-GUI-Fenstersteuerungen
1. Titel
Verwenden Sie diese Funktion, um den Titel festzulegen lv_win_set_title(win, "Neuer Titel")
2. Steuertasten
Steuerschaltflächen können auf der rechten Seite des Fensterkopfs hinzugefügt werden mit: lv_win_add_btn_right(win, LV_SYMBOL_CLOSE).Wenn Sie Schaltflächen auf der linken Seite des Fensterkopfs hinzufügen möchten, können Sie stattdessen lv_win_add_btn_left(win, LV_SYMBOL_CLOSE) verwenden. Der zweite Parameter ist eine Bildquelle, also kann es sich um ein Symbol, einen Zeiger auf die lv_img_dsc_t-Variable oder einen Pfad zu einer Datei handeln.
Die Breite des Buttons kann mit lv_win_set_btn_width(win, w) eingestellt werden. Wenn w == 0 ist, ist die Schaltfläche quadratisch.
lv_win_close_event_cb kann als Event-Callback-Funktion verwendet werden, um das Fenster zu schließen.
3. Bildlaufleisten
Das Verhalten der Bildlaufleiste kann durch lv_win_set_scrlbar_mode(win, LV_SCRLBAR_MODE_…) eingestellt werden.
4. Manuelles Scrollen und Fokussieren
Um das Fenster direkt zu scrollen, können Sie lv_win_scroll_hor(win, dist_px) oder lv_win_scroll_ver(win, dist_px) verwenden.
Verwenden Sie lv_win_focus(win, child, LV_ANIM_ON/OFF), damit das Fenster ein Objekt anzeigt.
Die Zeit des Scrollens und Fokussierens der Animation kann durch lv_win_set_anim_time(win, anim_time_ms) angepasst werden.
5. Anordnung
Verwenden Sie diese Funktion für das Layout
Schauen wir uns ein umfassendes Beispiel an
void lvgl_window_test(void)
{
/*Create a window*/
lv_obj_t* win = lv_win_create(lv_scr_act(), NULL);
lv_win_set_title(win, "Window title"); /*Set the title*/
/*Add control button to the header*/
lv_obj_t* close_btn = lv_win_add_btn(win, LV_SYMBOL_CLOSE); /*Add close button and use built-in close action*/
lv_obj_set_event_cb(close_btn, lv_win_close_event_cb);
lv_win_add_btn(win, LV_SYMBOL_SETTINGS); /*Add a setup button*/
/*Add some dummy content*/
lv_obj_t* txt = lv_label_create(win, NULL);
lv_label_set_text(txt, "This is the content of the window\n\n"
"You can add control buttons to\n"
"the window header\n\n"
"The content area becomes\n"
"automatically scrollable is it's \n"
"large enough.\n\n"
" You can scroll the content\n"
"See the scroll bar on the right!");
}
Okay, es ist vorbei, weiter spannend ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓