Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/06/2011, 13:07
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
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.