ProgressDialog
- class pygamelib.gfx.ui.ProgressDialog(label=Progress dialog[0m, value=0, maximum=100, width=20, progress_marker='▬', empty_marker=' ', adaptive_width=True, destroy_on_complete=True, config=None)
Bases:
Dialog
ProgressDialog is a progress bar widget as a dialog (or popup). The main difference with a progress bar with borders is that it is automatically rendered on the second pass by the screen object (therefore, is visible on top of other graphical elements ).
This dialog requires external interactions so it is the only dialog widget that does not provide a useful show() implementation. As a matter of fact, show do nothing at all.
ProgressDialog is mainly a label, a box and a
ProgressBar
bundled together.- __init__(label=Progress dialog[0m, value=0, maximum=100, width=20, progress_marker='▬', empty_marker=' ', adaptive_width=True, destroy_on_complete=True, config=None)
The constructor accepts the following parameters.
- Parameters:
label (str |
base.Text
) – A label to display on top of the progress bar.value (int) – The initial value parameter. It represents the progression.
maximum (int) – The maximum value held by the progress bar. Any value over the maximum is ignored.
width (int) – The width of the progress bar widget (in number of screen cells).
progress_marker (
pygamelib.gfx.core.Sprixel
) – The progress marker is displayed on progression. It is the sprixel that fills the bar. Please see below.empty_marker (
pygamelib.gfx.core.Sprixel
) – The empty marker is displayed instead of the progress marker when the bar should be empty (when the value is too low to fill the bar for example). Please see below.adaptive_width (bool) – If True, the dialog will automatically adapt to the size of the label.
destroy_on_complete – If True, the dialog will remove itself from the screen when complete (i.e: when value == maximum)
config (
UiConfig
) – The configuration object.
Example:
# Create a default progress bar with the default configuration progress_dial = ProgressDialog( "Please wait while I'm doing something super duper important", config=UiConfig.instance(), ) # Place the progress bar in the middle of the screen screen.place( progress_dial, screen.vcenter, screen.hcenter - int(progress_bar.width) ) for progress in range(progress_dial.maximum + 1): # Do something useful progress_dial.value = progress screen.update()
Methods
__init__
([label, value, maximum, width, ...])The constructor accepts the following parameters.
render_to_buffer
(buffer, row, column, ...)Render the object from the display buffer to the frame buffer.
show
()The show method does nothing in the ProgressDialog.
Attributes
Get and set the config object (
UiConfig
).Get and set the label of the dialog, it has to be a str or
base.Text
.Get and set the maximum possible progress, it has to be an int.
Facility to store and retrieve the user input.
Get and set the current progress value, it has to be an int.
- property label
Get and set the label of the dialog, it has to be a str or
base.Text
.
- property maximum
Get and set the maximum possible progress, it has to be an int.
- render_to_buffer(buffer, row, column, buffer_height, buffer_width)
Render the object from the display buffer to the frame buffer.
This method is automatically called by
pygamelib.engine.Screen.render()
.- Parameters:
buffer (numpy.array) – A screen buffer to render the item into.
row (int) – The row to render in.
column (int) – The column to render in.
height (int) – The total height of the display buffer.
width (int) – The total width of the display buffer.
- show()
The show method does nothing in the ProgressDialog. It is a notable exception and the only dialog widget in the UI module to do that.
- property user_input
Facility to store and retrieve the user input.
- property value
Get and set the current progress value, it has to be an int.