Как я вижу свой SQL
код, результат это должно быть 2 столбца x N строка (N - номер записи);
SELECT id_cliente as 'Codigo del cliente', nombre AS 'Nombre' FROM t_clientes
Так, tuple
записи должно быть выглядеть, как это (2 колонки х N строк);
record = (
(u'Data column 1.1', u'Data column 1.2'),
(u'Data column 2.1', u'Data column 2.2'),
...
(u'Data column M.N', u'Data column M.N'),
)
Затем показать все данные в записи, легкий в использовании петлей for
;
for row in range (len(record)):
for column in range(len(record[row])): # For proof concept. I know is overhead, your can replace with 2.
print record[row][column]
Так что ваш вопрос, проблема в том, Index Out of Range
как говорит по ошибке питона. Чтобы исправить это, используйте правильную ссылку индекса, вычислив перед ее использованием (а не код непосредственно);
cursor.execute("SELECT id_cliente as 'Codigo del cliente', nombre AS 'Nombre' FROM t_clientes")
listsRecord = cursor.fetchall()
if listsRecord:
QtGui.QMessageBox.warning(self, "Error", "No hay Datos .... " , QtGui.QMessageBox.Ok)
return
lengthRow = len(listsRecord)
lengthColumn = len(listsRecord[0]) # column is 2 at all
yourQTableWidget.setRowCount(lengthRow)
yourQTableWidget.setColumnCount(lengthColumn)
for row in range (lengthRow):
for column in range (lengthColumn):
itemQTableWidgetItem = QtGui.QTableWidgetItem(str(listsRecord[row][column]))
yourQTableWidget.setItem(row, column, itemQTableWidgetItem)
Пример проверить его;
import sys
from PyQt4 import QtGui
myQApplication = QtGui.QApplication(sys.argv)
yourQTableWidget = QtGui.QTableWidget()
listsRecord = (('BRA001', 'ARCELIA EUGENIA'), ('DTA001', 'ALEJANDRA'), ('EDM001', 'ESPACIOS DE DISENO Y MUEBLES'), ('EIE001', 'EDMUNDO')) # Simulate data
lengthRow = len(listsRecord)
lengthColumn = len(listsRecord[0])
yourQTableWidget.setRowCount(len(listsRecord))
yourQTableWidget.setColumnCount(lengthColumn)
for i in range (lengthRow):
for j in range (lengthColumn):
item = QtGui.QTableWidgetItem(str(listsRecord[i][j]))
yourQTableWidget.setItem(i, j, item)
yourQTableWidget.show()
sys.exit(myQApplication.exec_())
Экспериментальный результат: Windows 7, Python 2.7 x86, PyQt4
спасибо за ответ, но только "печать" в последней колонке (и запись) ... –
Huumm ???? покажите результат 'cursor.fetchall()' (Отпечаток на cinsole) перед добавлением в таблицу. Благодарю. –
(('BRA001', 'ARCELIA EUGENIA'), ('DTA001', 'ALEJANDRA'), ('EDM001', 'ESPACIOS DE DISENO Y MUEBLES'), ('EIE001', 'EDMUNDO') ... –