Foros del Web » Programando para Internet » Python »

Validar Campos

Estas en el tema de Validar Campos en el foro de Python en Foros del Web. Hola como estan estoy trabajando en PyQt y necesito saber como hago para validar que los campos sean texto no reciban números, ya lo logre ...
  #1 (permalink)  
Antiguo 02/06/2011, 10:33
 
Fecha de Ingreso: febrero-2011
Mensajes: 31
Antigüedad: 13 años, 2 meses
Puntos: 0
Validar Campos

Hola como estan estoy trabajando en PyQt y necesito saber como hago para validar que los campos sean texto no reciban números, ya lo logre hacer viceversa osea que los que son de tipo numero no me reciben texto con la funcion QValidator y funciono al pelo el problema es q no se como validar un campo q solo reciba texto... Gracias
  #2 (permalink)  
Antiguo 02/06/2011, 10:46
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Validar Campos

¿Que solo reciba texto? Entonces no requieres validar.
Si quieres que el texto siga cierto patrón entonces eso es otra cosa y puedes usar expresiones regulares para esto.
  #3 (permalink)  
Antiguo 02/06/2011, 10:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 31
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Validar Campos

SI eso solo que reciba letras mas no numeros ni caracteres !!! Pero como lo haria existe alguna funcion con el QValidator o algo parecido q lo logre hacer ?
  #4 (permalink)  
Antiguo 02/06/2011, 13:07
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Validar Campos

Como te dije con expresiones regulares puedes resolver fácilmente este problema.
Código Python:
Ver original
  1. from PyQt4 import QtCore, QtGui
  2. from functools import partial
  3.  
  4. class Gui(QtGui.QDialog):
  5.     def __init__(self):
  6.         QtGui.QDialog.__init__(self)
  7.  
  8.         editLayout = QtGui.QFormLayout()
  9.  
  10.         edit = QtGui.QLineEdit()
  11.         edit.setMinimumWidth(125)
  12.         regex = QtCore.QRegExp("[a-zA-Z]*")
  13.         validator = QtGui.QRegExpValidator(regex, edit)
  14.  
  15.         edit.setValidator(validator)
  16.  
  17.         editLayout.addRow("Texto: ", edit)
  18.  
  19.         button=QtGui.QPushButton("Validar")
  20.         button.clicked.connect(partial(self.addClientButtonClicked, edit, validator))
  21.  
  22.         layout=QtGui.QVBoxLayout()
  23.         layout.addLayout(editLayout)
  24.         layout.addWidget(button)
  25.  
  26.         self.setLayout(layout)
  27.  
  28.     def addClientButtonClicked(self, edit, validator):
  29.         print edit.text()
  30.         state, pos = validator.validate(edit.text(), 0)
  31.         print state == QtGui.QValidator.Acceptable, pos
  32.  
  33.  
  34. app=QtGui.QApplication([])
  35. g=Gui()
  36. g.show()
  37. app.exec_()

Ejemplo sacado de aquí.

Ahora tu problema es la vaga definición que tienes de letras, caracteres y números.
1.- Las letras son caracteres
2.- Los caracteres también son letras.
3.- Los números son concepto abstracto, en cambio los dígitos son 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9 (Por lo menos en decimal).

Solo te falta definir bien que es una letra y listo.
  #5 (permalink)  
Antiguo 02/06/2011, 13:39
 
Fecha de Ingreso: febrero-2011
Mensajes: 31
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Validar Campos

Gracias ya lo resolvi gracias a el ejemplo y un compañero de trabajo que me lo explico... Y si es verdad no haber podido definir bien lo de caracteres pero pense q no me hiba a entender... Me quedo mas claro jeje gracias

Etiquetas: campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:59.