Variable: Text
constText:"Text"
Defined in: react/src/generated/jsx.ts:15616
A single-line text entry.
GtkText is the common implementation of single-line text editing
that is shared between [class@Gtk.Entry], [class@Gtk.PasswordEntry],
[class@Gtk.SpinButton], and other widgets. In all of these, a GtkText
instance is used as the delegate for the [iface@Gtk.Editable] implementation.
A large number of key bindings s supported by default. If the entered text is longer than the allocation of the widget, the widget will scroll so that the cursor position is visible.
When using an entry for passwords and other sensitive information, it can be put into “password mode” using [method@Gtk.Text.set_visibility]. In this mode, entered text is displayed using an “invisible” character. By default, GTK picks the best invisible character that is available in the current font, but it can be changed with [method@Gtk.Text.set_invisible_char].
If you want to add icons or progress display in an entry, look at [class@Gtk.Entry]. There are other alternatives for more specialized use cases, such as [class@Gtk.SearchEntry].
If you need multi-line editable text, use [class@Gtk.TextView].
Shortcuts and Gestures
GtkText supports the following keyboard shortcuts:
Shift+F10orMenuopens the context menu.Ctrl+AorCtrl+/selects all the text.Ctrl+Shift+AorCtrl+\unselects all.Ctrl+Zundoes the last modification.Ctrl+YorCtrl+Shift+Zredoes the last undone modification.Ctrl+Shift+Ttoggles the text direction.Clearclears the content.
Additionally, the following signals have default keybindings:
- [signal@Gtk.Text::activate]
- [signal@Gtk.Text::backspace]
- [signal@Gtk.Text::copy-clipboard]
- [signal@Gtk.Text::cut-clipboard]
- [signal@Gtk.Text::delete-from-cursor]
- [signal@Gtk.Text::insert-emoji]
- [signal@Gtk.Text::move-cursor]
- [signal@Gtk.Text::paste-clipboard]
- [signal@Gtk.Text::toggle-overwrite]
Actions
GtkText defines a set of built-in actions:
clipboard.copycopies the contents to the clipboard.clipboard.cutcopies the contents to the clipboard and deletes it from the widget.clipboard.pasteinserts the contents of the clipboard into the widget.menu.popupopens the context menu.misc.insert-emojiopens the Emoji chooser.misc.toggle-visibilitytoggles theGtkText:visibility property.misc.toggle-directiontoggles the text direction.selection.deletedeletes the current selection.selection.select-allselects all of the widgets content.text.redoredoes the last change to the contents.text.undoundoes the last change to the contents.text.clearremoves all content.
CSS nodes
text[.read-only]
├── placeholder
├── undershoot.left
├── undershoot.right
├── [selection]
├── [cursor-handle[.top]
├── [cursor-handle.bottom]
├── [block-cursor]
├── [cursor-handle[.top/.bottom][.insertion-cursor]]
╰── [window.popup]
GtkText has a main node with the name text. Depending on the properties
of the widget, the .read-only style class may appear.
When the entry has a selection, it adds a subnode with the name selection.
When the entry is in overwrite mode, it adds a subnode with the name
block-cursor that determines how the block cursor is drawn.
The CSS node for a context menu is added as a subnode with the name popup.
The undershoot nodes are used to draw the underflow indication when content
is scrolled out of view. These nodes get the .left or .right style class
added depending on where the indication is drawn.
When touch is used and touch selection handles are shown, they are using
CSS nodes with name cursor-handle. They get the .top or .bottom style
class depending on where they are shown in relation to the selection. If
there is just a single handle for the text cursor, it gets the style class
.insertion-cursor.
Accessibility
GtkText uses the [enum@Gtk.AccessibleRole.none] role, which causes it to be
skipped for accessibility. This is because GtkText is expected to be used
as a delegate for a GtkEditable implementation that will be represented
to accessibility.