---
name: "Tickit::Widget::Button"
section: "3pm"
platform: "linux"
package: "libtickit-widgets-perl"
version: "0.42-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Tickit::Widget::Button"
---

# Tickit::Widget::Button(3pm)

a widget displaying a clickable button

## NAME

"Tickit::Widget::Button" - a widget displaying a clickable button

## SYNOPSIS

```
   use Tickit;
   use Tickit::Widget::Button;
   my $button = Tickit::Widget::Button->new(
      label => "Click Me!",
      on_click => sub {
         my ( $self ) = @_;
         # Do something!
      },
   );
   Tickit->new( root => $button )->run;
```

## DESCRIPTION

This class provides a widget which displays a clickable area with a label. When the area is clicked, a callback is invoked.

## STYLE

The default style pen is used as the widget pen. The following style keys are used:

- linetype =\> STRING

  What kind of border to draw around the button; one of

  ```
     none single double thick
  ```

- marker\_left =\> STRING

  A two-character string to place just before the button label

- marker\_right =\> STRING

  A two-character string to place just after the button label

The following style tags are used:

- :active

  Set when the mouse is being held over the button, before it is released

The following style actions are used:

- click

  The main action to activate the `"on_click"` handler.

## CONSTRUCTOR

### new

```
   $button = Tickit::Widget::Button->new( %args );
```

Constructs a new `"Tickit::Widget::Button"` object.

Takes the following named arguments:

- label =\> STR

  Text to display in the button area

- on\_click =\> CODE

  Optional. Callback function to invoke when the button is clicked.

## ACCESSORS

### label

```
   $label = $button->label;
```

### set\_label

```
   $button->set_label( $label );
```

Return or set the text to display in the button area.

### on\_click

```
   $on_click = $button->on_click;
```

### set\_on\_click

```
   $button->set_on_click( $on_click );
```

Return or set the CODE reference to be called when the button area is clicked.

```
   $on_click->( $button );
```

### click

```
   $button->click;
```

Behave as if the button has been clicked; running its `"on_click"` handler. This is provided for convenience of activating its handler programmatically via other parts of code.

### align

### set\_align

### valign

### set\_valign

```
   $align = $button->align;
   $button->set_align( $align );
   $valign = $button->valign;
   $button->set_valign( $valign );
```

Accessors for the horizontal and vertical alignment of the label text within the button area. See also Tickit::WidgetRole::Alignable.

## AUTHOR

Paul Evans \<leonerd@leonerd.org.uk\>
