Window (lv_win)
Overview
The Window is container-like object built from a header with title and buttons and a content area.
Parts and Styles
The Window is built from other widgets so you can check their documentation for details:
Usage
Create a Window
lv_win_create(parent, header_height) creates a Window with an empty header.
Get the parts
lv_win_get_header(win) returns a pointer to the header, lv_win_get_content(win) returns a pointer to the content container to which the content of the window can be added.
Events
No special events are sent by the windows, however events can be added
manually to the return value of lv_win_add_btn()
.
Learn more about Events.
Keys
No Keys are handled by the window.
Learn more about Keys.
Example
Simple window
C code
View on GitHub#include "../../lv_examples.h"
#if LV_USE_WIN && LV_BUILD_EXAMPLES
static void event_handler(lv_event_t * e)
{
lv_obj_t * obj = lv_event_get_target(e);
LV_UNUSED(obj);
LV_LOG_USER("Button %d clicked", (int)lv_obj_get_index(obj));
}
void lv_example_win_1(void)
{
lv_obj_t * win = lv_win_create(lv_screen_active());
lv_obj_t * btn;
btn = lv_win_add_button(win, LV_SYMBOL_LEFT, 40);
lv_obj_add_event(btn, event_handler, LV_EVENT_CLICKED, NULL);
lv_win_add_title(win, "A title");
btn = lv_win_add_button(win, LV_SYMBOL_RIGHT, 40);
lv_obj_add_event(btn, event_handler, LV_EVENT_CLICKED, NULL);
btn = lv_win_add_button(win, LV_SYMBOL_CLOSE, 60);
lv_obj_add_event(btn, event_handler, LV_EVENT_CLICKED, NULL);
lv_obj_t * cont = lv_win_get_content(win); /*Content can be added here*/
lv_obj_t * label = lv_label_create(cont);
lv_label_set_text(label, "This is\n"
"a pretty\n"
"long text\n"
"to see how\n"
"the window\n"
"becomes\n"
"scrollable.\n"
"\n"
"\n"
"Some more\n"
"text to be\n"
"sure it\n"
"overflows. :)");
}
#endif
def event_handler(e):
code = e.get_code()
obj = e.get_target_obj()
if code == lv.EVENT.CLICKED:
print("Button {:d} clicked".format(obj.get_index()))
win = lv.win(lv.screen_active())
button1 = win.add_button(lv.SYMBOL.LEFT, 40)
button1.add_event(event_handler, lv.EVENT.ALL, None)
win.add_title("A title")
button2=win.add_button(lv.SYMBOL.RIGHT, 40)
button2.add_event(event_handler, lv.EVENT.ALL, None)
button3 = win.add_button(lv.SYMBOL.CLOSE, 60)
button3.add_event(event_handler, lv.EVENT.ALL, None)
cont = win.get_content() # Content can be added here
label = lv.label(cont)
label.set_text("""This is
a pretty
long text
to see how
the window
becomes
scrollable.
We need
quite some text
and we will
even put
some more
text to be
sure it
overflows.
""")