DirectWaitBar
DirectWaitBars are similar to status bars; use them to indicate a slow process gradually completing (e.g. a loading screen). It has various options for both the background bar and the loading bar that fills up as the process progresses. You can call finish() to automatically fill up the bar, or use the following to set the value (it ranges from 0 to 100 by default):
myWaitBar['value'] = number
Keyword |
Definition |
Value |
---|---|---|
value |
Initial value of the loading bar (from 0 to 100) |
Number |
range |
The maximum value of the loading bar |
Number |
barColor |
The color of the loading bar |
(R,G,B,A) |
barTexture |
An image to be display on the loading bar |
image filename or Texture object |
barRelief |
The relief appearance of the loading bar |
SUNKEN or RAISED |
barBorderWidth |
If barRelief is SUNKEN, RAISED, GROOVE, or RIDGE, changes the size of the loading bar’s bevel |
(Width, Height) |
relief |
The relief appearance of the background bar |
SUNKEN or RAISED |
Example
import direct.directbase.DirectStart
from direct.gui.OnscreenText import OnscreenText
from direct.gui.DirectGui import *
from panda3d.core import *
# Add some text
bk_text = "This is my Demo"
textObject = OnscreenText(text=bk_text, pos=(0.95, -0.95), scale=0.07,
fg=(1, 0.5, 0.5, 1), align=TextNode.ACenter,
mayChange=1)
# Callback function to set text
def incBar(arg):
bar['value'] += arg
text = "Progress is:" + str(bar['value']) + '%'
textObject.setText(text)
# Create a frame
frame = DirectFrame(text="main", scale=0.001)
# Add button
bar = DirectWaitBar(text="", value=50, pos=(0, .4, .4))
# Create 4 buttons
button_1 = DirectButton(text="+1", scale=0.05, pos=(-.3, .6, 0),
command=incBar, extraArgs=[1])
button_10 = DirectButton(text="+10", scale=0.05, pos=(0, .6, 0),
command=incBar, extraArgs=[10])
button_m1 = DirectButton(text="-1", scale=0.05, pos=(0.3, .6, 0),
command=incBar, extraArgs=[-1])
button_m10 = DirectButton(text="-10", scale=0.05, pos=(0.6, .6, 0),
command=incBar, extraArgs=[-10])
# Run the tutorial
base.run()