Blame platform-demos/fr/entry.py.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="guide" style="task" id="entry.py" xml:lang="fr">
Packit 1470ea
  <info>
Packit 1470ea
    <title type="text">Entry (Python)</title>
Packit 1470ea
    <link type="guide" xref="beginner.py#entry"/>
Packit 1470ea
    <link type="seealso" xref="strings.py"/>
Packit 1470ea
    <link type="next" xref="scale.py"/>
Packit 1470ea
    <revision version="0.2" date="2012-06-23" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright editor">
Packit 1470ea
      <name>Marta Maria Casetti</name>
Packit 1470ea
      <email its:translate="no"/>
Packit 1470ea
      <years>2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Sebastian Pölsterl</name>
Packit 1470ea
      <email its:translate="no">sebp@k-d-w.org</email>
Packit 1470ea
      <years>2011</years>
Packit 1470ea
    </credit>
Packit 1470ea
    <desc>Un champ de saisie de texte sur une ligne</desc>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Luc Rebert,</mal:name>
Packit 1470ea
      <mal:email>traduc@rebert.name</mal:email>
Packit 1470ea
      <mal:years>2011</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Alain Lojewski,</mal:name>
Packit 1470ea
      <mal:email>allomervan@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011-2012</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Luc Pionchon</mal:name>
Packit 1470ea
      <mal:email>pionchon.luc@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Bruno Brouard</mal:name>
Packit 1470ea
      <mal:email>annoa.b@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011-12</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Luis Menina</mal:name>
Packit 1470ea
      <mal:email>liberforce@freeside.fr</mal:email>
Packit 1470ea
      <mal:years>2014</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>Entrée</title>
Packit 1470ea
  <media type="image" mime="image/png" src="media/entry.png"/>
Packit 1470ea
  

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

Packit 1470ea
Packit 1470ea
  <links type="section"/>
Packit 1470ea
Packit 1470ea
  <section id="code">
Packit 1470ea
  <title>Code utilisé pour générer cet exemple</title>
Packit 1470ea
    from gi.repository import Gtk
Packit 1470ea
import sys
Packit 1470ea
Packit 1470ea
Packit 1470ea
class MyWindow(Gtk.ApplicationWindow):
Packit 1470ea
Packit 1470ea
    def __init__(self, app):
Packit 1470ea
        Gtk.Window.__init__(self, title="What is your name?", application=app)
Packit 1470ea
        self.set_default_size(300, 100)
Packit 1470ea
        self.set_border_width(10)
Packit 1470ea
Packit 1470ea
        # a single line entry
Packit 1470ea
        name_box = Gtk.Entry()
Packit 1470ea
        # emits a signal when the Enter key is pressed, connected to the
Packit 1470ea
        # callback function cb_activate
Packit 1470ea
        name_box.connect("activate", self.cb_activate)
Packit 1470ea
Packit 1470ea
        # add the Gtk.Entry to the window
Packit 1470ea
        self.add(name_box)
Packit 1470ea
Packit 1470ea
    # the content of the entry is used to write in the terminal
Packit 1470ea
    def cb_activate(self, entry):
Packit 1470ea
        # retrieve the content of the widget
Packit 1470ea
        name = entry.get_text()
Packit 1470ea
        # print it in a nice form in the terminal
Packit 1470ea
        print("Hello " + name + "!")
Packit 1470ea
Packit 1470ea
Packit 1470ea
class MyApplication(Gtk.Application):
Packit 1470ea
Packit 1470ea
    def __init__(self):
Packit 1470ea
        Gtk.Application.__init__(self)
Packit 1470ea
Packit 1470ea
    def do_activate(self):
Packit 1470ea
        win = MyWindow(self)
Packit 1470ea
        win.show_all()
Packit 1470ea
Packit 1470ea
    def do_startup(self):
Packit 1470ea
        Gtk.Application.do_startup(self)
Packit 1470ea
Packit 1470ea
app = MyApplication()
Packit 1470ea
exit_status = app.run(sys.argv)
Packit 1470ea
sys.exit(exit_status)
Packit 1470ea
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="methods">
Packit 1470ea
    <title>Méthodes utiles pour un élément graphique Entrée</title>
Packit 1470ea
    

In line 14 the signal "activate" is connected to the callback function cb_activate() using widget.connect(signal, callback function). See <link xref="signals-callbacks.py"/> 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).

Packit 1470ea
    <list>
Packit 1470ea
      <item>

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.

</item>
Packit 1470ea
      <item>

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

</item>
Packit 1470ea
      <item>

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

</item>
Packit 1470ea
      <item>

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

</item>
Packit 1470ea
      <item>

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().

</item>
Packit 1470ea
      <item>

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.

</item>
Packit 1470ea
      <item>

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).

</item>
Packit 1470ea
      <item>

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

</item>
Packit 1470ea
      <item>

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.

</item>
Packit 1470ea
      <item>

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

</item>
Packit 1470ea
      <item>

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

</item>
Packit 1470ea
      <item>

set_completion(completion), where completion is a <link href="http://developer.gnome.org/gtk3/unstable/GtkEntryCompletion.html">Gtk.EntryCompletion</link>, sets completion - or disables it if completion is None.

</item>
Packit 1470ea
      <item>

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.

</item>
Packit 1470ea
      <item>

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").

</item>
Packit 1470ea
    </list>
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="references">
Packit 1470ea
    <title>Références API</title>
Packit 1470ea
    

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

Packit 1470ea
    <list>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkEntry.html">GtkEntry</link>

</item>
Packit 1470ea
    </list>
Packit 1470ea
  </section>
Packit 1470ea
</page>