---
title: "ProgressIndicator"
language: "en"
type: "Symbol"
summary: "ProgressIndicator[x] represents a progress indicator with setting x in the range 0 to 1. ProgressIndicator[Dynamic[x]] takes the setting to be the dynamically updated current value of x. ProgressIndicator[x, {xmin, xmax}] represents a progress indicator with range xmin to xmax. ProgressIndicator[x, Indeterminate] represents a progress indicator with indeterminate range."
keywords: 
- calculation delay
- delay feedback
- guesstimate
- progress display
- progress meter
- waitbar
canonical_url: "https://reference.wolfram.com/language/ref/ProgressIndicator.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Control Objects"
    link: "https://reference.wolfram.com/language/guide/ControlObjects.en.md"
  - 
    title: "User Interface Structuring & Layout"
    link: "https://reference.wolfram.com/language/guide/UserInterfaceStructuringAndLayout.en.md"
related_workflows: 
  - 
    title: "Dynamically Monitor Values of Variables"
    link: "https://reference.wolfram.com/language/workflow/DynamicallyMonitorValuesOfVariables.en.md"
related_functions: 
  - 
    title: "Slider"
    link: "https://reference.wolfram.com/language/ref/Slider.en.md"
  - 
    title: "Animator"
    link: "https://reference.wolfram.com/language/ref/Animator.en.md"
  - 
    title: "StatusArea"
    link: "https://reference.wolfram.com/language/ref/StatusArea.en.md"
  - 
    title: "Monitor"
    link: "https://reference.wolfram.com/language/ref/Monitor.en.md"
  - 
    title: "PrintTemporary"
    link: "https://reference.wolfram.com/language/ref/PrintTemporary.en.md"
related_tutorials: 
  - 
    title: "Introduction to Dynamic"
    link: "https://reference.wolfram.com/language/tutorial/IntroductionToDynamic.en.md"
  - 
    title: "Introduction to Control Objects"
    link: "https://reference.wolfram.com/language/tutorial/IntroductionToControlObjects.en.md"
---
# ProgressIndicator

ProgressIndicator[x] represents a progress indicator with setting x in the range 0 to 1. 

ProgressIndicator[Dynamic[x]] takes the setting to be the dynamically updated current value of x. 

ProgressIndicator[x, {xmin, xmax}] represents a progress indicator with range xmin to xmax. 

ProgressIndicator[x, Indeterminate] represents a progress indicator with indeterminate range.

## Details and Options

* ``ProgressIndicator[…]`` displays in a notebook as a progress indicator going from left to right; it does not allow interactive modification.

* ``ProgressIndicator[x, Indeterminate]`` displays as an object that changes whenever ``x`` changes. »

* The following options can be given:

|                   |           |                                                     |
| :---------------- | :-------- | :-------------------------------------------------- |
| Appearance        | Automatic | the overall appearance of the progress indicator    |
| BaselinePosition  | Automatic | alignment relative to surrounding text              |
| BaseStyle         | {}        | base style for the progress indicator               |
| ImageMargins      | 0         | margins around the image of the progress indicator  |
| ImageSize         | Automatic | the overall image size of the progress indicator    |

* ``ProgressIndicator[]`` is equivalent to ``ProgressIndicator[0]``.

* ``ProgressIndicator[Appearance -> val]`` can create an indeterminate progress indicator that runs constantly. Settings for ``val`` that create such indicators include:

|     |     |
| --- | --- |
| "Indeterminate" | Animator[0.16486215591430664, {0, Infinity}, AnimationRunTime -> 0.16486215591430664,   AnimationTimeIndex -> 0.16486215591430664, AppearanceElements -> {"ProgressSlider"}] |
| "Necklace" | ProgressIndicator[Appearance -> "Necklace"] |
| "ArcUp" | ProgressIndicator[Appearance -> "ArcUp"] |
| "ArcDown" | ProgressIndicator[Appearance -> "ArcDown"] |
| "ArcUpFill" | ProgressIndicator[Appearance -> "ArcUpFill"] |
| "Percolate" | ProgressIndicator[Appearance -> "Percolate"] |
| "Ellipsis" | ProgressIndicator[Appearance -> "Ellipsis"] |

* The settings for ``BaseStyle`` are appended to the default style typically given by the ``"ProgressIndicator"`` style in the current stylesheet.

---

## Examples (14)

### Basic Examples (1)

Create a progress indicator set at 0.8 in the default range 0 to 1:

```wl
In[1]:= ProgressIndicator[0.8]

Out[1]= ProgressIndicator[0.8]
```

### Scope (3)

Use the default range 0 to 1:

```wl
In[1]:= {ProgressIndicator[Dynamic[x]], Slider[Dynamic[x]]}

Out[1]= {ProgressIndicator[Dynamic[x]], Slider[Dynamic[x]]}
```

---

Use the fixed range 0 to 10:

```wl
In[1]:= {ProgressIndicator[Dynamic[x], {0, 10}], Slider[Dynamic[x], {0, 10}]}

Out[1]= {ProgressIndicator[Dynamic[x], {0, 10}], Slider[Dynamic[x], {0, 10}]}
```

---

Use an unknown range, and indicate change in the progress variable:

```wl
In[1]:= {ProgressIndicator[Dynamic[x], Indeterminate], Slider[Dynamic[x], {0, 10}]}

Out[1]= {ProgressIndicator[Dynamic[x], Indeterminate], Slider[Dynamic[x], {0, 10}]}
```

### Generalizations & Extensions (1)

```wl
In[1]:= ProgressIndicator[0.5, Indeterminate]

Out[1]= ProgressIndicator[0.5, Indeterminate]
```

### Options (4)

#### Appearance (1)

Predefined progress indicator appearances:

```wl
In[1]:= Table[ProgressIndicator[Appearance -> a], {a, {"Indeterminate", "Necklace", "ArcUp", "ArcDown", "ArcUpFill", "Percolate", "Ellipsis"}}]

Out[1]=
{Animator[0.18239498138427734, {0, Infinity}, AnimationRunTime -> 0.18239498138427734, 
 AnimationTimeIndex -> 0.18239498138427734, AppearanceElements -> {"ProgressSlider"}], ProgressIndicator[Appearance -> "Necklace"], ProgressIndicator[Appearance -> "ArcUp"], ProgressIndicator[Appearance -> "ArcDown"], ProgressIndicator[Appearance -> "ArcUpFill"], ProgressIndicator[Appearance -> "Percolate"], ProgressIndicator[Appearance -> "Ellipsis"]}
```

#### BaselinePosition (1)

Align with surrounding text:

```wl
In[1]:= Row[Table[ProgressIndicator[0.5, ImageSize -> 100, BaselinePosition -> p], {p, {Top, Center, Bottom}}], "xxx"]

Out[1]=
Row[{ProgressIndicator[0.5, ImageSize -> 100, BaselinePosition -> Top], 
  ProgressIndicator[0.5, ImageSize -> 100, BaselinePosition -> Center], 
  ProgressIndicator[0.5, ImageSize -> 100, BaselinePosition -> Bottom]}, "xxx"]
```

#### ImageMargins (1)

Add margins to the indicator:

```wl
In[1]:= Table[Framed@ProgressIndicator[0.5, ImageMargins -> m], {m, {0, 5, 10, 15}}]

Out[1]= {ProgressIndicator[0.5, ImageMargins -> 0], ProgressIndicator[0.5, ImageMargins -> 5], ProgressIndicator[0.5, ImageMargins -> 10], ProgressIndicator[0.5, ImageMargins -> 15]}
```

#### ImageSize (1)

Specify the overall image size:

```wl
In[1]:= Grid[Table[ProgressIndicator[0.7, Background -> Gray, ImageSize -> {w, h}], {h, {10, 30, 50}}, {w, {30, 50, 80, 220}}]]

Out[1]= |                                                                             |                                                                             |                                                                             |              ...  {30, 50}] | ProgressIndicator[0.7, Background -> GrayLevel[0.5], ImageSize -> {50, 50}] | ProgressIndicator[0.7, Background -> GrayLevel[0.5], ImageSize -> {80, 50}] | ProgressIndicator[0.7, Background -> GrayLevel[0.5], ImageSize -> {220, 50}] |
```

### Applications (3)

Display the progress of a computation:

```wl
In[1]:= ProgressIndicator[Dynamic[n], {100, 140}]

Out[1]= ProgressIndicator[Dynamic[n], {100, 140}]

In[2]:= Table[(n = k;FactorInteger[2 ^ k - 1]), {k, 100, 140}];
```

---

Use ``Indeterminate`` to indicate activity of unknown duration:

```wl
In[1]:= k = 0;ProgressIndicator[Dynamic[k], Indeterminate]

Out[1]= ProgressIndicator[Dynamic[k], Indeterminate]

In[2]:=
L = 4;
eqs = {D[u[t, x, y], t, t] == D[u[t, x, y], x, x] + D[u[t, x, y], y, y] + Sin[u[t, x, y]], u[t, -L, y] == u[t, L, y], u[t, x, -L] == u[t, x, L], u[0, x, y] == Exp[-(x ^ 2 + y ^ 2)], Derivative[1, 0, 0][u][0, x, y] == 0};
```

Use ``EvaluationMonitor`` to track solution activity in numerical functions:

```wl
In[3]:= NDSolve[eqs, u, {t, 0, L / 2}, {x, -L, L}, {y, -L, L}, EvaluationMonitor :> k++]

Out[3]= {{u -> InterpolatingFunction[{{0., 2.}, {…, -4., 4., …}, {…, -4., 4., …}}, <>]}}
```

---

Display activity indefinitely:

```wl
In[1]:= ProgressIndicator[Dynamic[Clock[Infinity]], Indeterminate]

Out[1]= ProgressIndicator[Dynamic[Clock[Infinity]], Indeterminate]
```

### Properties & Relations (2)

The zero-argument case is equivalent to zero progress:

```wl
In[1]:= {ProgressIndicator[], ProgressIndicator[0]}

Out[1]= {ProgressIndicator[0], ProgressIndicator[0]}
```

---

Use ``PrintTemporary`` to display a progress indicator while a cell is evaluating:

```wl
In[1]:=
PrintTemporary[ProgressIndicator[Appearance -> "Percolate"]];
Pause[5];
```

## See Also

* [`Slider`](https://reference.wolfram.com/language/ref/Slider.en.md)
* [`Animator`](https://reference.wolfram.com/language/ref/Animator.en.md)
* [`StatusArea`](https://reference.wolfram.com/language/ref/StatusArea.en.md)
* [`Monitor`](https://reference.wolfram.com/language/ref/Monitor.en.md)
* [`PrintTemporary`](https://reference.wolfram.com/language/ref/PrintTemporary.en.md)

## Tech Notes

* [Introduction to Dynamic](https://reference.wolfram.com/language/tutorial/IntroductionToDynamic.en.md)
* [Introduction to Control Objects](https://reference.wolfram.com/language/tutorial/IntroductionToControlObjects.en.md)

## Related Guides

* [Control Objects](https://reference.wolfram.com/language/guide/ControlObjects.en.md)
* [User Interface Structuring & Layout](https://reference.wolfram.com/language/guide/UserInterfaceStructuringAndLayout.en.md)

## Related Workflows

* [Dynamically Monitor Values of Variables](https://reference.wolfram.com/language/workflow/DynamicallyMonitorValuesOfVariables.en.md)

## History

* [Introduced in 2007 (6.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn60.en.md)