Postgresql qtablewidget中的空值
我在PYQT5上开发了一个桌面应用程序,并集成了posgtresql。我无意中发现表中没有显示值: 源代码:Postgresql qtablewidget中的空值,postgresql,python-3.x,pyqt,qtablewidget,Postgresql,Python 3.x,Pyqt,Qtablewidget,我在PYQT5上开发了一个桌面应用程序,并集成了posgtresql。我无意中发现表中没有显示值: 源代码: def createTable(self): self.tableWidget = QTableWidget() conn = psycopg2.connect('host=localhost port=5432 dbname=postgres user=postgres password=12345678') cursor = conn.cursor()
def createTable(self):
self.tableWidget = QTableWidget()
conn = psycopg2.connect('host=localhost port=5432 dbname=postgres user=postgres password=12345678')
cursor = conn.cursor()
query = cursor.execute("SELECT * FROM wave_params")
result = cursor.fetchall()
for i in result:
print(i)
rows = len(result)
columns = len(result[0])
self.tableWidget.setColumnCount(columns)
self.tableWidget.setRowCount(rows)
index = 0
while query != None:
self.tableWidget.setItem(index,0, QTableWidgetItem(query.result[0]))
# self.tableWidget.setItem(index, 1, QTableWidgetItem(str(query.value(1))))
# self.tableWidget.setItem(index, 2, QTableWidgetItem(str(query.value(2))))
index = index + 1
# table selection change
self.tableWidget.doubleClicked.connect(self.on_click)
@pyqtSlot()
def on_click(self):
print("\n")
for currentQTableWidgetItem in self.tableWidget.selectedItems():
print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text())
我不明白。有什么问题?
谢谢 光标对象没有属性结果。 在代码结果中,是一个元组列表,其中包含
cursor.fetchall()
的返回值,query是cursor.execute()
的返回值cursor.execute()
(见附件)。您只需要在结果上循环,这里有两个示例:
def createTable(self):
self.tableWidget = QTableWidget(self)
psycopg2.connect('host=localhost port=5432 dbname=postgres user=postgres password=12345678')
cursor = conn.cursor()
query = cursor.execute("SELECT * FROM ladestelle")
result = cursor.fetchall()
rows = len(result)
columns = len(result[0])
self.tableWidget.setColumnCount(columns)
self.tableWidget.setRowCount(rows)
for i, r in enumerate(result):
self.tableWidget.setItem(i, 0, QTableWidgetItem(r[0]))
self.tableWidget.setItem(i, 1, QTableWidgetItem(str(r[1])))
self.tableWidget.setItem(i, 2, QTableWidgetItem(str(r[2])))
'''
# or simpler
for r in range(rows):
for c in range(columns):
self.tableWidget.setItem(r, c, QTableWidgetItem(str(result[r][c])))
'''
self.tableWidget.doubleClicked.connect(self.on_click)
.