Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
PyQt5, llamar a QLineEdit desde un string
#1
Hola a todos,
Llevo meses dándole a Python y uso PyQt5 desde Qt Designer para visualizar datos de un Microsoft Server.

Lo que me está costando es poder acceder a objetos tipo QLineEdit en base a un string.

Es decir, tengo un Objeto (creado en Qt Designer) llamados linea_1, linea_2, linea_3, etc y quiero escribir dentro valores  tipo Hola_1, Hola_2, Hola_3, etc, pero NO PUEDO Angry Angry 

y por eso estoy haciendo un código largo de narices:

kk= "Hola" + n
if n==1:
       self.linea_1.setText(str(kk))
elif n==2:
       self.linea_2.setText(str(kk))
elif n==3:
       self.linea_3.setText(str(kk))

............

No hay ninguna forma de usando algo tipo "linea_"+n, hacer:
kk= "Hola" + n
self.("linea_"+n).setText(str(kk))

THNKS
Responder
#2
Hola, bienvenido.

Eso que estás intentando se podría hacer así (suponiendo que tenés objetos del 1 al 3):

  1. for n in range(1, 4):
  2. getattr(self, f"linea_{n}").setText(str(n))


Sobre getattr(): https://micro.recursospython.com/recurso...tattr.html.

Si creaste la ventana con Qt Designer, capaz una mejor opción sería usar la función de Qt findChildren() para buscar los controles (a partir del prefijo o de la clase) y luego cambiarles el texto.

Saludos!
Responder
#3
Muchas gracias Francisco
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)