Código de Python - Entrada de texto con GTK

Imágen de perfil

Entrada de texto con GTKgráfica de visualizaciones


Python

Publicado el 13 de Octubre del 2008 por Xavi
8.155 visualizaciones desde el 13 de Octubre del 2008. Una media de 21 por semana
Ejemplo de utilización de entradas de texto con el control gtk.Entry. Se muestra la utilización de los eventos: activate, changed, delete-text, insert-text

Versión 1

Publicado el 13 de Octubre del 2008gráfica de visualizaciones de la versión: Versión 1
8.156 visualizaciones desde el 13 de Octubre del 2008. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
 
#
# pygtk
#
# Ejemplo de utilizacion de entradas de texto (Entry)
# 
# http://www.lawebdelprogramador.com
#
 
import pygtk
# Indicamos que deseamos utilizar la versión 2.0 de gtk
pygtk.require('2.0')
import gtk
import re
 
class X(object):
    def __init__(self):
        # Creamos la ventana. Indicamos que se desea una ventana sometida a las
        # decoraciones y posicionamiento del manejador de ventanas.
        self.window=gtk.Window(gtk.WINDOW_TOPLEVEL)
 
        # Conector para cuando se va a cerrar la ventana
        self.window.connect("destroy", self.destroy, None)
 
        # Creamos una caja vertical...
        vbox=gtk.VBox(True)
 
        # Creamos el cuadro de texto Entry limitado a 50 caracteres
        entry=gtk.Entry(50)
        entry.connect("activate",self.entryEnter,entry)
        entry.connect("changed",self.entryChanged,entry)
        entry.connect("delete-text",self.entryDelete,entry)
        entry.connect("insert-text",self.entryInsert,entry)
        entry.show()
        vbox.pack_start(entry)
 
        # Creamos una caja horizontal para contener los checks
        hbox=gtk.HBox(True)
 
        # Creamos los checks con sus conectores
        checkEditable=gtk.CheckButton("Editable")
        checkEditable.set_active(True)
        checkEditable.connect("toggled",self.toggle_editable,entry)
        checkEditable.show()
 
        checkVisible=gtk.CheckButton("Visible")
        checkVisible.set_active(True)
        checkVisible.connect("toggled",self.toggle_visible,entry)
        checkVisible.show()
 
        # Colocamos los checks en la caja horizontal
        hbox.pack_start(checkEditable)
        hbox.pack_start(checkVisible)
        hbox.show()
        # Añadimos la caja horizontal a la caja vertical
        vbox.pack_start(hbox)
 
        # Creamos un boton para seleccionar el texto
        button=gtk.Button("seleccionar el texto")
        button.connect("clicked",self.entrySeleccionar,entry)
        button.show()
        vbox.pack_start(button)
 
        vbox.show()
 
        self.window.add(vbox)
        self.window.show()
 
    # Evento que se ejecuta cuando se pulsa la tecla enter
    def entryEnter(self,widget,entry):
        print "activate %s " % entry.get_text()
 
    # Evento que se ejecuta cuando se modifica el contenido
    def entryChanged(self,widget,entry):
        print "changed %s " % entry.get_text()
 
    # Evento que se ejecuta cuando se elimina
    def entryDelete(self,widget,start,end,entry):
        print "delete '%s' start=%d end=%d " % (entry.get_text()[start:end],start,end)
 
    # Evento que se ejecuta cuando se inserta texto
    def entryInsert(self,widget,newText,newTextLength,position,entry):
        # Para este ejemplo, vamos a impedir la entrada de numeros en el cuadro de texto
        if re.match("[0-9]", newText):
            entry.stop_emission("insert-text")
        else:
            print "Insert '%s' lenght=%d " % (newText,newTextLength)
 
    # Evento que se ejecuta cuando se pulsa el boton para seleccionar el texto
    def entrySeleccionar(self,widget,entry):
        # Seleccionamos el texto entero
        entry.select_region(0,len(entry.get_text()))
        # Enviamos el foco al control "entry"
        self.window.set_focus(entry)
 
    # Evento que se ejecuta cuando se pulsa sobre check editable
    # Recibimos como parametros el checkbutton pulsado, y el "entry"
    def toggle_editable(self,checkbutton,entry):
        # Establecemos el valor editable del "entry" igual que el checkbutton
        entry.set_editable(checkbutton.get_active())
        # Enviamos el foco al control "entry"
        self.window.set_focus(entry)
 
    # Evento que se ejecuta cuando se pulsa sobre check visible
    # Recibimos como parametros el checkbutton pulsado, y el "entry"
    def toggle_visible(self,checkbutton,entry):
        # Establecemos el valor visible del "entry" igual que el checkbutton
        entry.set_visibility(checkbutton.get_active())
        # Enviamos el foco al control "entry"
        self.window.set_focus(entry)
 
    def destroy(self,widget,data=None):
        gtk.main_quit()
 
 
if __name__=="__main__":
    X()
    gtk.main()



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s1711