PyQt5, psycopg2 отобразить данные в QTableWidjet
Я абсолютный новичок в python. Не стала заморачиваться с драйверами QPSQL.Сделала подключение к бд с помощью psycopg2.Теперь стоит проблема как можно отобразить данные в QTableWidjet? Пробовала так,появились только линии столбцов и строк.
def dbConnection(self,*args):
try:
con = psycopg2.connect(dbname='***', user='***', password='***', host='***', port=***)
cur = con.cursor()
cur.execute("SELECT * FROM table")
data = cur.fetchall()
a = len(data) #rows
b = len(data[0]) #columns
self.ui.tableWidget.setSortingEnabled(True)
self.ui.tableWidget.setRowCount(a)
self.ui.tableWidget.setColumnCount(b)
self.ui.tableWidget.setHorizontalHeaderLabels(['column_name'])
i = 1 #row
j = 0 #column
for j in range(a):
for i in range(b):
item = QtGui.QTableWidgetItem(data[j][i])
self.ui.tableWidget.setItem(j, i, item)
self.ui.tableWidget.sortByColumn(0, QtCore.Qt.DescendingOrder)
except psycopg2.DatabaseError as e:
print(f'Error {e}')
sys.exit(1)
finally:
if con:
con.close()
Ответы (1 шт):
Автор решения: Superproger77
→ Ссылка
def dbConnection(self,*args):
try:
con = psycopg2.connect(dbname='***', user='***', password='***', host='***', port=***)
cur = con.cursor()
cur.execute("SELECT * FROM table")
data = cur.fetchall()
a = len(data) #rows
b = len(data[0]) #columns
self.ui.tableWidget.setSortingEnabled(True)
self.ui.tableWidget.setRowCount(a)
self.ui.tableWidget.setColumnCount(b)
self.ui.tableWidget.setHorizontalHeaderLabels(['column_name'])
i = 1 #row
j = 0 #column
for j in range(a):
for i in range(b):
item = QtGui.QTableWidgetItem(str(data[j][i]))
self.ui.tableWidget.setItem(j, i, item)
self.ui.tableWidget.sortByColumn(0, QtCore.Qt.DescendingOrder)
except psycopg2.DatabaseError as e:
print(f'Error {e}')
sys.exit(1)
finally:
if con:
con.close()