# Entry (Python)

Marta Maria Casetti
2012
Sebastian Pölsterl
sebp@k-d-w.org 2011
Un campo de entrada de texto de una sola línea
Daniel Mustieles
daniel.mustieles@gmail.com 2011 - 2020
Nicolás Satragno
nsatragno@gmail.com 2012 - 2013
Jorge González
jorgegonz@svn.gnome.org 2011

# Entry

Esta aplicación le saluda en la terminal con el nombre que le indique.

# Código usado para generar este ejemplo

from gi.repository import Gtk import sys

class MyWindow(Gtk.ApplicationWindow):

def __init__(self, app): Gtk.Window.__init__(self, title="What is your name?", application=app) self.set_default_size(300, 100) self.set_border_width(10)

# a single line entry name_box = Gtk.Entry() # emits a signal when the Enter key is pressed, connected to the # callback function cb_activate name_box.connect("activate", self.cb_activate)

# add the Gtk.Entry to the window self.add(name_box)

# the content of the entry is used to write in the terminal def cb_activate(self, entry): # retrieve the content of the widget name = entry.get_text() # print it in a nice form in the terminal print("Hello " + name + "!")

class MyApplication(Gtk.Application):

def __init__(self): Gtk.Application.__init__(self)

def do_activate(self): win = MyWindow(self) win.show_all()

def do_startup(self): Gtk.Application.do_startup(self)

app = MyApplication() exit_status = app.run(sys.argv) sys.exit(exit_status)

# Métodos útiles para un widget «Entry»

En la línea 14 la señal `«activate»` se conecta a la función de retorno de llamada `cb_activate()` usando `widget.connect(señal, función de retorno de llamada)`. Consulte la sección para obtener una explicación más detallada. Algunas de las señales que un widget «Gtk.Entry» puede emitir son: `«activate»` (cuando el usuario pulsa la tecla «Intro»); `«backspace»` (cuando el usuario pulsa las teclas «Retroceso» o «Mayús-Retroceso»); `«copy-clipboard»` («Ctrl-C» y «Ctrl-Insert»); `«paste-clipboard»` («Ctrl-V» o «Mayús-Insert»); `«delete-from-cursor»` («Suprimir», para borrar un carácter; «Ctrl-Suprimir», para borrar una palabra); `«icon-press»` (cuando el usuario pulsa un icono activable); `«icon-release»` (cuando el botón del ratón se suelta sobre un icono activable); `«insert-at-cursor»` (cuando el usuario inicia la inserción de una cadena fija en el cursor); `«move-cursor»` (cuando el usuario inicia un movimiento del cursor); `«populate-popup»` (antes de mostrar el menú contextual de una entrada; puede usarse para añadirle elementos).

`get_buffer()` y `set_buffer(búfer)` donde `búfer` es un objeto «Gtk.EntryBuffer», pueden usarse para obtener y establecer el búfer de la entrada.

`get_text()` y `set_text("texto")` pueden usarse para obtener y establecer el contenido de la entrada.

`get_text_length()` obtiene la longitud del texto.

`get_text_area()` obtiene el área en la que se dibuja el texto de la entrada.

Si se establece `set_visibility(False)`, los caracteres en la entrada se muestran como caracteres invisibles. Esto es el mejor disponible en la tipografía actual, pero puede cambiarse con `set_invisible_char(ch)`, donde `ch` es un carácter Unicode. El último método se revierte con `unset_invisbile_char()`.

`set_max_length(int)`, donde `int` es un entero, trunca todas las entradas más largas que `int` para tener la longitud máxima deseada.

De manera predeterminada, si presiona la tecla «Intro», el «Gtk.Entry» emite la señal `«activate»`. Si quisiera activar el widget predeterminado de la ventana (establecido usando `set_default(widget)` en la ventana), entonces use `set_activates_default(True)`.

Para poner un marco alrededor de la entrada: `set_has_frame(True)`.

`set_placeholder_text("texto")` establece el texto que mostrar en la entrada cuando esté vacía y sin foco.

`set_overwrite_mode(True)` y `set_overwrite_mode(False)` activa o desactiva el modo de sobreescritura.

Si tiene `set_editable(False)` el usuario no puede editar el texto en el widget.

`set_completion(completado)`, donde `completado` es un `Gtk.EntryCompletion`, configura el completado; o lo desactiva si `completado` es `None`.

Un widget de entrada puede mostrar progreso o información de actividad detrás del texto. Se usa `set_progress_fraction(fracción)`, donde `fracción` es un `float` entre `0.0` y `1.0` inclusive, para llenar la fracción dada de la barra. Se usa `set_progress_pulse_step()` para establecer la fracción de la anchura total de la entrada para mover el bloque que rebota por cada llamada a `progress_pulse()`. El último método indica que se realizó algún progreso, y hace que el indicador de progreso de la entrada entre al «modo de actividad», en el que un bloque rebota hacia adelante y atrás. Cada llamada a `progress_pulse()` hace que el bloque se mueva un poco (la cantidad de movimiento por pulso la determina, como se dijo anteriormente, `set_progress_pulse_step()`).

Una entrada también puede mostrar iconos. Estos pueden activarse cuando se pulsan, configurarse para arrastrarse, y tener consejos. Para añadir un icono, use `set_icon_from_stock(posición_icono, id_almacén)`, `set_icon_from_pixbuf(posición_icono, pixbuf)`, o `set_icon_from_icon_name(posición_icono, nombre_icono)`, donde `posición_icono` puede ser `Gtk.EntryIconPosition.PRIMARY` (para poner el icono al principio de la entrada) o `Gtk.EntryIconPosition.SECONDARY` (para poner el icono al final de la entrada). Para ponerle un consejo a un icono, use `set_icon_tooltip_text("texto del consejo")` o `set_icon_tooltip_markup("texto del consejo en el lenguaje de marcado Pango")`.

# Referencias de la API

En este ejemplo se usa lo siguiente:

GtkEntry