The DirectEntry creates a field that accepts text entered by the user. It provides a blinking cursor and support for backspace and the arrow keys. It can accept either a single line of text, with a fixed width limit (it doesn't scroll), or it can accept multiple word-wrapped lines.
Keyword
|
Definition
|
Value
|
initialText
|
Initial text to load in the field
|
String
|
entryFont
|
Font to use for text entry
|
Font object
|
width
|
Width of field in screen units
|
Number
|
numLines
|
Number of lines in the field
|
Integer
|
cursorKeys
|
True to enable the use of cursor keys (arrow keys)
|
0 or 1
|
obscured
|
True to hide passwords, etc.
|
0 or 1
|
command
|
Function to call when enter is pressed(the text in the field is passed to the function)
|
Function
|
extraArgs
|
Extra arguments to the function specified in command
|
[Extra Arguments]
|
rolloverSound
|
The sound made when the cursor rolls over the field
|
Sound File Path
|
clickSound
|
The sound made when the cursor inside the field
|
Sound File Path
|
focus
|
Whether or not the field begins with focus (focusInCommand is called if true)
|
0 or 1
|
backgroundFocus
|
If true, field begins with focus but with hidden cursor, and focusInCommand is not called
|
0 or 1
|
focusInCommand
|
Function called when the field gains focus
|
Function
|
focusInExtraArgs
|
Extra arguments to the function specified in focusInCommand
|
[Extra Arguments]
|
focusOutCommand
|
Function called when the field loses focus
|
Function
|
focusOutExtraArgs
|
Extra arguments to the function specified in focusOutCommand
|
[Extra Arguments]
|
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 setText(textEntered):
textObject.setText(textEntered)
#clear the text
def clearText():
b.enterText('')
#add button
b = DirectEntry(text = "" ,scale=.05,command=setText,
initialText="Type Something", numLines = 2,focus=1,focusInCommand=clearText)
#run the tutorial
base.run()
This example implements a text entry widget typically seen in web pages.