Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Combobox con base de datos.-
#1
Buenas noches a todos: Soy novato en el tema Foros ya que es la primera vez que recurro a este medio, pero después de 3 días de renegar con un combobox en python y tkinter sin lograr el objetivo que es mostrar una lista desplegable mostrando opciones de un campo de una tabla de base de datos, solo logre que el combobox desplegué el la interface gráfica,  el ultimo registro de la tabla y no toda la lista, hice una prueba como verán en el código que adjunto de antes de insertar la lista en el combo imprimir dicha lista por consola y por consola muestra todos los registros, pero ingresado al combo el cursor se posiciona en el ultimo registro y es lo que muestra el combo una sola opción a elegir. Este es la sintaxis que realice:

cuadro2 = ttk.Combobox(self.frame, textvariable=self.pad, font="Arial, 13", width=15, )
cuadro2.place(x=190, y= 90)
con = sqlite3.connect("Bettas")
res = con.cursor()
res.execute("SELECT Apodo, Sexo FROM Reproductores WHERE sexo = 'Macho' ORDER BY Apodo DESC")
reg = res.fetchall()
for row in reg:
p = (row[0])
pad = print(p)
cuadro2['values'] = (pad)

Desde ya muchísimas Gracias a todos.-
PD: el Bucle for esta bien tabulado en cuanto al VALUES del combo lo puse dentro y fuera del bucle y el resultado de mostrar un solo registro no vario.-
Responder
#2
Hola, bienvenido. El problema es que estás asignando el valor de retorno de la función print() (que siempre es None) a tu variable pad, y luego ésta la estableces como la propiedad cuadro2['values'], por lo que es lógico que no muestre nada.

Podrías en su lugar hacer algo así:

  1. reg = res.fetchall()
  2. cuadro2['values'] = [row[0] for row in reg]


Saludos
Responder
#3
Francisco ante todo deja que te agradezca de corazón tu aporte, te cuento el print lo puse solo para ver que resultado me arrojaba el bucle ya que no es parte de la aplicación, espectacular lo tuyo funciono como debería funcionar y por mi parte buscando una solución durante 3 días es mas que evidente que mis 71 años me están pasando la factura MIL GRACIAS y UN ABRAZO FRATERNAL.-
Responder
#4
Me alegro que te haya servido. Abrazo! Wink
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)