es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PyQt5 Python: Cómo recorrer filas individuales de datos de un resultado de consulta MySQL.

Estoy tratando de agregar un elemento en un QComboBox en PyQt5 utilizando Python. Estoy teniendo problemas para agregar datos de la consulta SQL por fila.

cursor = cnx.cursor()
query = “SELECT buyerID, lastName, firstName, middleName FROM buyer ORDER BY id DESC LIMIT 5”
cursor.execute(query)
data = cursor.fetchall()
item = list()
for a, b, c, d in data:
row = “{} | {}, {} {}”.format(a, b, c, d)
item.append(row)
self.customerID.addItem(str(row))

Esto resulta en que solo se agrega un elemento en el Combo Box:

“100000 | lastName, firstName middleName, 100000 | lastName, firstName middleName, 100000 | lastName, firstName middleName…etc.”

Lo que quiero que suceda en el ComboBox es esto (Agregar un total de 5 elementos en el ComboBox):

“100001 | lastName, firstName middleName
100002 | lastName, firstName middleName
100003 | lastName, firstName middleName
100004 | lastName, firstName middleName
100005 | lastName, firstName middleName”

Edición:

cursor = cnx.cursor()
query = “SELECT buyerID, lastName, firstName, middleName FROM buyer ORDER BY id DESC LIMIT 5”
cursor.execute(query)
data = cursor.fetchall()
item = list()
for a, b, c, d in data:
row = “{} | {}, {} {}”.format(a, b, c, d)
item.append(row)
self.customerID.addItem(str(row)) <——- Acabo de mover esta línea de código dentro del bucle FOR para agregar el elemento por cada iteración.

Mismo problema:

El elemento agregado es todavía todas las filas de datos agrupadas en uno.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para agregar cada elemento en el ComboBox por separado, es necesario mover el método addItem dentro del ciclo for. Además, no es necesario convertir item a un string usando str(), ya que addItem puede aceptar directamente un string. Aquí está el código corregido:

    cursor = cnx.cursor()
    query = "SELECT buyerID, lastName, firstName, middleName FROM buyer ORDER BY id DESC LIMIT 5"
    cursor.execute(query)
    data = cursor.fetchall()
    for a, b, c, d in data:
        row = "{} | {}, {} {}".format(a, b, c, d)
        self.customerID.addItem(row)
    

Comments are closed.