The progressWindow command creates a window containing a status message, a graphical progress gauge, and optionally a “Hit ESC to Cancel” label for interruptable operations. Only one progress window is allowed on screen at a time. While the window is visible, the busy cursor is shown.
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
endProgress (ep) | bool | ||
Terminates the progress window. No other flags can be used at the same time. This is normally issued through MEL in response to the -ic/isCancelled flag being set or if the progress value reaches its maximum.Flag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list. |
|||
isCancelled (ic) | bool | ||
|
|||
isInterruptable (ii) | bool | ||
|
|||
maxValue (max) | int | ||
The maximum or “ending” value of the progress indicator. If the progress value is greater than the -max/maxValue, the progress value will be set to the maximum. Default value is 100. |
|||
minValue (min) | int | ||
The minimum or “starting” value of the progress indicator. If the progress value is less than the -min/minValue, the progress value will be set to the minimum. Default value is 0. |
|||
progress (pr) | int | ||
|
|||
status (st) | unicode | ||
|
|||
step (s) | int | ||
|
|||
title (t) | unicode | ||
|
Derived from mel command maya.cmds.progressWindow
Example:
import pymel.core as pm
import maya.cmds as cmds
# +-+------------------+
# |-| Doing Nothing |
# +--------------------+
# | Sleeping: 40% |
# | |
# | +----------------+ |
# | ||||||| | |
# | +----------------+ |
# | |
# | Hit ESC to Cancel |
# +--------------------+
# Always use the progress dialog from a script, never directly
# from the Script Editor.
amount = 0
pm.progressWindow( title='Doing Nothing',
progress=amount,
status='Sleeping: 0%',
isInterruptable=True )
while True :
# Check if the dialog has been cancelled
if pm.progressWindow( query=True, isCancelled=True ) :
break
# Check if end condition has been reached
if pm.progressWindow( query=True, progress=True ) "= 100 :
break
amount += 5
pm.progressWindow( edit=True, progress=amount, status=('Sleeping: ' + `amount` + '%' ) )
pm.pause( seconds=1 )
pm.progressWindow(endProgress=1)