In your sample code you construct ( build ) widgets like this
lecui::widgets::label_builder label(pane_one.get(), "my_label");
This looks like it will call the widget's destructor when it goes out of scope. Usually people want to prevent this happening until the application ends, or when the container is destroyed.
A smaller point: it seems odd to me that you are constructing an instance of a widget builder, rather than an instance of a label.
So something like
lecui::widgets::label * plabel1 = lecui::widgets::label_builder( label(pane_one.get(), "my_label");
( the builder returns a pointer to the widget )
or
lecui::widgets::label& label1 = lecui::widgets::label_builder( label(pane_one.get(), "my_label");
( the builder returns a reference to the widget )
Personally, I prefer the second style.