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.