DirectEntry
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():
    entry.enterText('')
#add text entry
entry = 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.
