Einführung von Embedded GUI LVGL "Window Control"

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 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

Supongo que te gusta

Origin blog.csdn.net/XiaoXiaoPengBo/article/details/114088455
Recomendado
Clasificación