```eval_rst .. include:: /header.rst :github_url: |github_link_base|/widgets/core/btn.md ``` # Button (lv_btn) ## Overview Buttons have no new features compared to the [Base object](/widgets/obj). They are useful for semantic purposes and have slightly different default settings. Buttons, by default, differ from Base object in the following ways: - Not scrollable - Added to the default group - Default height and width set to `LV_SIZE_CONTENT` ## Parts and Styles - `LV_PART_MAIN` The background of the button. Uses the typical background style properties. ## Usage There are no new features compared to [Base object](/widgets/obj). ## Events - `LV_EVENT_VALUE_CHANGED` when the `LV_OBJ_FLAG_CHECKABLE` flag is enabled and the object is clicked. The event happens on transition to/from the checked state. Learn more about [Events](/overview/event). ## Keys Note that the state of `LV_KEY_ENTER` is translated to `LV_EVENT_PRESSED/PRESSING/RELEASED` etc. See the events of the [Base object](/widgets/obj) too. Learn more about [Keys](/overview/indev). ## Example ```eval_rst .. include:: ../../../examples/widgets/btn/index.rst ``` ## API ```eval_rst .. doxygenfile:: lv_btn.h :project: lvgl ```