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.
