利用pymysql读取数据库数据,然后填充至qtableview中。和qtablewidget类似。
self.table = QtWidgets.QTableView(self.centralwidget)
conn = pymysql.connect(host='localhost', port=3306, user='root', password="*****", db="***")
cur = conn.cursor()
sql = "SELECT a FROM b order by id DESC limit 20;"
cur.execute(sql)
data = cur.fetchall()
row = cur.rowcount
cur.close()
conn.close()
self.model = QStandardItemModel(row, 6, self)
table_headers = ['a', 'b', 'c', 'd', 'e', 'f']
for i in range(row):
for j in range(6):
table_data = data[i][j]
# 填充内容
item = QStandardItem("{}".format(table_data))
# 按行、列填充
self.model.setItem(i, j, item)
self.table.setModel(self.model)
self.table.horizontalHeader().setStretchLastSection(True)
self.model.setHorizontalHeaderLabels(table_headers)
self.table.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)