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.
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 convertiritem
a un string usandostr()
, ya queaddItem
puede aceptar directamente un string. Aquí está el código corregido: