Button Component

This component allows you to show a static textbox which ends the routine and/or triggers a “callback” (some custom code) when pressed. The nice thing about the button component is that you can allow mouse/touch responses with a single component instead of needing 3 separate components i.e. a textbox component (to display as a “clickable” thing), a mouse component (to click the textbox) and a code component (not essential, but for example to check if a clicked response was correct or incorrect).


Everything in a PsychoPy® experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces).

start :

The time that the stimulus should first appear. See Defining the onset/duration of components for details.

stop :

The duration for which the stimulus is presented. See Defining the onset/duration of components for details.

Force End Routine on Press

If this box is checked then the Routine will end as soon as one of the mouse buttons is pressed.

button textstring

Text to be shown

callback functioncode

Custom code to run when the button is pressed

run once per clickbool

Whether the callback function to only run once when the button is inititally clicked, or whether it should run continuously each frame while the button is pressed.


How should the stimulus look? Colour, borders, etc.

text colorcolor

See Color spaces

fill colorcolor

See Color spaces

border colorcolor

See Color spaces

color spacergb, dkl, lms, hsv

See Color spaces

border widthint | float

How wide should the line be? Width is specified in chosen spatial units, see Units for the window and stimuli

opacity :

Vary the transparency, from 0.0 = invisible to 1.0 = opaque


How should the stimulus be laid out? Padding, margins, size, position, etc.


The orientation of the stimulus in degrees.


The position of the centre of the stimulus, in the units specified by the stimulus or window

size(width, height)

Size of the stimulus on screen

spatial unitsdeg, cm, pix, norm, or inherit from window

See Units for the window and stimuli


How much space should there be between the box edge and the text?

anchorcenter, center-left, center-right, top-left, top-center, top-right, bottom-left, bottom-center, bottom-right

What point on the button should be anchored to its position? For example, if the position of the button is (0, 0), should the middle of the button be in the middle of the screen, should its top left corner be in the middle of the screen, etc.?


Formatting text


What font should the text be set in? Can be a font installed on your computer, saved to the “fonts” folder in your PsychoPy® user folder or (if you are connected to the internet), a font from Google Fonts.

language styleLTR, RTL, Arabic

Should text be laid out from left to right (LTR), from right to left (RTL), or laid out like Arabic script?

letter heightinteger or float

The height of the characters in the given units of the stimulus/window. Note that nearly all actual letters will occupy a smaller space than this, depending on font, character, presence of accents etc. The width of the letters is determined by the aspect ratio of the font.

line spacingfloat

How tall should each line be, proportional to the size of the font?

See also

API reference for ButtonStim

Back to top