将 MySQL 数据库中的数据显示到 qtableview python pyqt5
display data from MySQL database to qtableview python pyqt5
我在 CRUD 方法中遇到问题,我正在使用 pyqt5 和 python 3.9,我想显示数据库中的数据并将其呈现到 qtable 视图中,我有两个问题第一个一个方法没有用,第二个是:我不知道如何自动使该功能起作用,我希望在导航到界面时激活应用程序,让每个老师都能看到他拥有的学生
这是我的代码
连接=mc.connect(主机=cr.host,用户=cr.user,密码=cr.password,数据库=cr.database)
当前 = connection.cursor()
rows = "select count(*) from student"
query = "SELECT Student_id, FirstName, LastName FROM student"
cur.execute(query)
result = cur.fetchall()
print("heel")
while query.next():
print("heel")
rows = self.view.rowCount()
self.view.setRowCount(rows + 1)
self.view.setItem(rows, 0, self.Student_List(str(query.value(0))))
self.view.setItem(rows, 1, self.Student_List(query.value(1)))
self.view.setItem(rows, 2, self.Student_List(query.value(2)))
self.view.resizeColumnsToContents()
except mc.Error as e:
print(e)
这是我的table视图
self.model = QSqlTableModel(self)
self.model.setTable("contacts")
self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
self.model.setHeaderData(0, Qt.Horizontal, "Student_id")
self.model.setHeaderData(1, Qt.Horizontal, "FirstName")
self.model.setHeaderData(2, Qt.Horizontal, "LastName")
self.model.select()
如果你想自动显示数据,不要使用方法,因为如果你想你应该调用它。代码会很乱,但对你有用。
几个月前,我使用 table 小部件 创建了一个 CRUD 应用程序,但如果您只想显示数据,则应该使用 table查看.
如果您想使用 qtablewidget,此代码将适用于您,但如果您使用 tableview 你应该创建模型或使用 pyqt 预定义 类
try:
connection = mc.connect(host=cr.host, user=cr.user, password=cr.password, database=cr.database)
cur = connection.cursor()
cur.execute("SELECT * FROM student")
result = cur.fetchall()
self.list.setRowCount(0)
print("ff")
for row_number, row_data in enumerate(result):
self.list.insertRow(row_number)
for column_number, data in enumerate(row_data):
self.list.setItem(row_number, zcolumn_number, QTableWidgetItem(str(data)))
except mc.Error as e:
print(e)
注意:list
是table
的名称
我在 CRUD 方法中遇到问题,我正在使用 pyqt5 和 python 3.9,我想显示数据库中的数据并将其呈现到 qtable 视图中,我有两个问题第一个一个方法没有用,第二个是:我不知道如何自动使该功能起作用,我希望在导航到界面时激活应用程序,让每个老师都能看到他拥有的学生
这是我的代码
连接=mc.connect(主机=cr.host,用户=cr.user,密码=cr.password,数据库=cr.database) 当前 = connection.cursor()
rows = "select count(*) from student"
query = "SELECT Student_id, FirstName, LastName FROM student"
cur.execute(query)
result = cur.fetchall()
print("heel")
while query.next():
print("heel")
rows = self.view.rowCount()
self.view.setRowCount(rows + 1)
self.view.setItem(rows, 0, self.Student_List(str(query.value(0))))
self.view.setItem(rows, 1, self.Student_List(query.value(1)))
self.view.setItem(rows, 2, self.Student_List(query.value(2)))
self.view.resizeColumnsToContents()
except mc.Error as e:
print(e)
这是我的table视图
self.model = QSqlTableModel(self)
self.model.setTable("contacts")
self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
self.model.setHeaderData(0, Qt.Horizontal, "Student_id")
self.model.setHeaderData(1, Qt.Horizontal, "FirstName")
self.model.setHeaderData(2, Qt.Horizontal, "LastName")
self.model.select()
如果你想自动显示数据,不要使用方法,因为如果你想你应该调用它。代码会很乱,但对你有用。
几个月前,我使用 table 小部件 创建了一个 CRUD 应用程序,但如果您只想显示数据,则应该使用 table查看.
如果您想使用 qtablewidget,此代码将适用于您,但如果您使用 tableview 你应该创建模型或使用 pyqt 预定义 类
try:
connection = mc.connect(host=cr.host, user=cr.user, password=cr.password, database=cr.database)
cur = connection.cursor()
cur.execute("SELECT * FROM student")
result = cur.fetchall()
self.list.setRowCount(0)
print("ff")
for row_number, row_data in enumerate(result):
self.list.insertRow(row_number)
for column_number, data in enumerate(row_data):
self.list.setItem(row_number, zcolumn_number, QTableWidgetItem(str(data)))
except mc.Error as e:
print(e)
注意:list
是table