# Entry (Python)

Marta Maria Casetti
2012
Sebastian Pölsterl
sebp@k-d-w.org 2011
Un champ de saisie de texte sur une ligne
Luc Rebert,
traduc@rebert.name 2011
Alain Lojewski,
allomervan@gmail.com 2011-2012
Luc Pionchon
pionchon.luc@gmail.com 2011
Bruno Brouard
annoa.b@gmail.com 2011-12
Luis Menina
liberforce@freeside.fr 2014

# Entrée

Cette application vous accueille dans le terminal avec le nom que vous fournissez.

# Code utilisé pour générer cet exemple

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éthodes utiles pour un élément graphique Entrée

In line 14 the signal `"activate"` is connected to the callback function `cb_activate()` using `widget.connect(signal, callback function)`. See for a more detailed explanation. Some of the signals that a Gtk.Entry widget can emit are: `"activate"` (emitted when the user activates the Entry key); `"backspace"` (emitted when the user activates the Backspace or Shift-Backspace keys); `"copy-clipboard"` (Ctrl-c and Ctrl-Insert); `"paste-clipboard"` (Ctrl-v and Shift-Insert); `"delete-from-cursor"` (Delete, for deleting a character; Ctrl-Delete, for deleting a word); `"icon-press"` (emitted when the user clicks an activatable icon); `"icon-release"` (emitted on the button release from a mouse click over an activatable icon); `"insert-at-cursor"` (emitted when the user initiates the insertion of a fixed string at the cursor); `"move-cursor"` (emitted when the user initiates a cursor movement); `"populate-popup"` (emitted before showing the context menu of the entry; it can be used to add items to it).

Les méthodes `get_buffer()` et `set_buffer(tampon)`, où `tampon` est un objet Gtk.EntryBuffer, peuvent être utilisées pour obtenir et définir le tampon de l'entrée.

Les fonctions `get_text()` et `set_text("some text")` peuvent être utilisées pour obtenir et définir le contenu de l'entrée.

La méthode `get_text_length()` parle d'elle-même.

La méthode `get_text_area()` obtient la position où le texte de l'entrée est dessiné.

If we set `set_visibility(False)` the characters in the entry are displayed as the invisible char. This is the best available in the current font, but it can be changed with `set_invisible_char(ch)`, where `ch` is a Unicode character. The latter method is reversed by `unset_invisible_char()`.

La méthode `set_max_length(int)`, où `int` est un nombre entier, coupe chaque entrée plus longue que `int` afin d'obtenir la longueur maximum désirée.

Par défaut, si vous appuyez sur la touche Entrée, Gtk.Entry émet le signal `"activate"`. Si vous préférez activer l'élément graphique par défaut de la fenêtre (défini par la méthode `set_default(widget)` pour la fenêtre), utilisez alors `set_activates_default(True)`.

Pour définir un cadre autour de l'entrée, utilisez la méthode `set_has_frame(True)`.

La méthode `set_placeholder_text(« texte »)` définit le texte pour qu'il s'affiche dans l'entrée quand il est vide et inactif.

Les méthodes `set_overwrite_mode(True)` et `set_overwrite_mode(False)` parlent d'elles-mêmes.

La méthode `set_editable(False)` n'autorise pas l'utilisateur à modifier le texte dans l'élément graphique.

`set_completion(completion)`, where `completion` is a `Gtk.EntryCompletion`, sets completion - or disables it if `completion` is `None`.

Un élément graphique Entry peut afficher la progression ou les informations d'activité derrière le texte. La méthode `set_progress_fraction(fraction)`, où `fraction` est un nombre flottant `float` compris entre `0.0` et `1.0` inclus, sert à remplir la fraction définie de la barre de progression. La méthode `set_progress_pulse_step()` définit la fraction de la largeur totale de l'entrée qui va se remplir d'un bloc à chaque appel à `progress_pulse()`. Cette dernière fonction indique qu'une progression est en cours et passe l'indicateur de progression sur "activity mode", ce qui fait avancer ou reculer un bloc. Chaque appel à `progress_pulse()` fait un petit peu bouger le bloc (l'amplitude du mouvement par pulsation est définie par `set_progress_pulse_step()`), comme expliqué précédemment.

Un élément graphique Entry peut aussi afficher des icônes. Ces icônes sont activables d'un clic de souris, ou peuvent être définies comme étant la source d'un élément glissable et comporter des infobulles. Pour ajouter une icône de la collection, utilisez la méthode `set_icon_from_stock(icon_position, stock_id)`, ou bien l'une des méthodes suivantes : `set_icon_from_pixbuf(icon_position, pixbuf)` ; `set_icon_from_icon_name(icon_position, icon_name)`, où `icon_position` est l'une des deux positions `Gtk.EntryIconPosition.PRIMARY` (pour positionner l'icône au début de l'entrée) ou `Gtk.EntryIconPosition.SECONDARY` (pour positionner l'icône à la fin de l'entrée). Pour ajouter une infobulle à une icône, utiliser l'une des deux fonctions `set_icon_tooltip_text("tooltip text")` ou `set_icon_tooltip_markup("tooltip text in Pango markup language")`.

# Références API

Dans cet exemple, les éléments suivants sont utilisés :

GtkEntry