Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > Dynamic Interactivity > Control Objects >

Button

Button[label, action]
represents a button that is labeled with label, and evaluates action whenever it is clicked.
  • label can be any expression, including a dynamic one.  »
  • Button by default displays label in "Button" style, which typically uses the system button font.
  • Button[label, action] maintains action in unevaluated form, evaluating it each time the button is clicked.
  • The following options can be given:
AlignmentAutomatichow to align contents within the button
AppearanceAutomaticthe overall appearance of the button
AutoActionFalsewhether to click the button automatically when the mouse is over it
BackgroundAutomaticbutton background color
BaselinePositionAutomaticalignment relative to surrounding text
BaseStyle"GenericButton"base style specifications for the button
EnabledAutomaticwhether the button is enabled, or grayed out
EvaluatorAutomaticthe kernel in which to evaluate expr
FrameMarginsAutomaticminimum margins to leave inside the frame
ImageMargins0margins around the image of the displayed button
ImageSizeFullthe overall image size of the displayed button
Method"Preemptive"the evaluation method to use
  • With the default setting ImageSize->Full a button will be sized to fill out its enclosing region in a Grid or related construct.
  • The setting ImageSize->Automatic specifies that the button will be sized to fit its contents, but will not expand to fill out an enclosing region.
  • Typical possible settings for the Appearance option include "DialogBox", "Frameless", "Palette" and "FramedPalette". In some cases, "AbuttingLeftRight", "AbuttingRight", etc. are also supported.
  • Appearance->"Pressed" gives a button with a pressed appearance. Appearance->{type, "Pressed"} gives a button of a certain type with a pressed appearance.
  • With Appearance->None, label is displayed literally, without being placed in a button.  »
  • Typical possible settings for the Method option include "Preemptive" and "Queued".
  • With the default setting Method->"Preemptive", button actions are performed immediately, preempting any other evaluation, but are allocated only a limited time to complete.
  • With the setting Method->"Queued", button actions are added to the current queue of evaluations, and are performed when other evaluations are complete. No time limit is applied.
  • The settings for BaseStyle are appended to the default style typically given by the "Button" style in the current stylesheet.
  • Button[label] displays as a button labeled with label, but performs no action.
  • Button[prims, action] can be used within graphics objects to specify that action should be evaluated whenever the graphics primitives prims are clicked.  »
Create a button that prints a number:
Create a button that prints a number:
In[1]:=
Click for copyable input
Out[1]=
Use any expression as a label:
Use a dynamic label:
Use a graphics primitive as a button:
Create a list of buttons; use With to ensure evaluation of i:
Another way to get the contents of a button evaluated:
Display the label literally, without the appearance of a button:
Get the mouse position in screen coordinates:
Get the mouse position in graphics coordinates:
Different predefined alignment options:
Predefined button appearances:
On some platforms, the following appearances are also defined:
Use a second element to get the appearance of a pressed button:
Use a special appearance for the button:
By default the button function does not evaluate until you click it:
By setting AutoAction, the button function evaluates as you mouse over the button area:
Change the background colors:
Change the background color on every click:
Align with the surrounding text:
Change the baseline position on every button click:
By default, Button is enabled:
By setting Enabled->False, the button is disabled but visible in its current state:
By default, the button function is sent to the kernel for evaluation:
By setting Evaluator, the button function is evaluated in the front end:
Not all functionalities are available in the front end:
By setting FrameMargins, you make the button content area larger:
By setting ImageMargins, you make the button area larger:
Use preset values:
Or use any values:
By setting the second element, you can also control the height:
A fully customized image size:
By default, button functions are evaluated on a preemptive link, which times out after 5 seconds:
Use Method->"Queued" to evaluate button functions on the main link, which never times out:
Specify that the stop button event needs to preemptively interrupt an evaluation:
Make a button that prints the current date:
Open the system color selector:
Create a button that deletes itself:
Create your own hyperlink:
Change color on mouseover:
Create a grid of tightly spaced buttons:
Create a button that makes the button the current selection:
Some functions require the kernel in order to be evaluated:
Specifying the Background option forces a generic appearance for the button:
Use ImageSize to control buttons in a Grid:
Use Method->"Queued" to avoid evaluation timeout on the preemptive link:
This button changes color each time you click it:
This button changes position every time you click it:
Use a graphics primitive as the button:
New in 6
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team