使用 QSqlQuery 和 table 视图
Using QSqlQuery and table view
我正在尝试将基本搜索功能添加到我的项目中,因此我创建了一个搜索栏和一个搜索按钮,单击该按钮后我想查询数据库并在 table 视图小部件上显示结果.
但是我仍然不太明白如何向 table 添加数据,我尝试创建一个 QsqlQuery 并使用 table 小部件的 setQuery 方法,但是当我单击搜索按钮没有任何反应。
我做错了什么?
这是我的代码。
def searchEvent(self):
'''
Send appropriate search query and display results on the tableView
'''
# Connect to the database
db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("data.sqlite3")
db.open()
# Prepare query
query = QtSql.QSqlQuery(db)
query.prepare("SELECT * FROM SetInfo_view WHERE Name LIKE(?)")
query.bindValue(0, self.searchLineEdit.text())
# Prepare table model
tableModel = QtSql.QSqlQueryModel()
tableModel.setQuery(query)
self.tableView.setModel(tableModel)
self.tableView.show()
db.close()
提前致谢。
阅读文档后,我发现有必要在将查询作为模型添加到 table 视图之前实际执行查询,如下所示:
def searchEvent(self):
'''
Send appropriate search query and display results on the tableView
'''
# Connect to the database
db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("data.sqlite3")
db.open()
# Prepare query
query = QtSql.QSqlQuery(db)
query.prepare("SELECT * FROM SetInfo_view WHERE Name LIKE(?)")
query.bindValue(0, self.searchLineEdit.text())
query.exec_()
# Prepare table model
tableModel = QtSql.QSqlQueryModel()
tableModel.setQuery(query)
self.tableView.setModel(tableModel)
self.tableView.show()
db.close()
来源:
我正在尝试将基本搜索功能添加到我的项目中,因此我创建了一个搜索栏和一个搜索按钮,单击该按钮后我想查询数据库并在 table 视图小部件上显示结果.
但是我仍然不太明白如何向 table 添加数据,我尝试创建一个 QsqlQuery 并使用 table 小部件的 setQuery 方法,但是当我单击搜索按钮没有任何反应。 我做错了什么?
这是我的代码。
def searchEvent(self):
'''
Send appropriate search query and display results on the tableView
'''
# Connect to the database
db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("data.sqlite3")
db.open()
# Prepare query
query = QtSql.QSqlQuery(db)
query.prepare("SELECT * FROM SetInfo_view WHERE Name LIKE(?)")
query.bindValue(0, self.searchLineEdit.text())
# Prepare table model
tableModel = QtSql.QSqlQueryModel()
tableModel.setQuery(query)
self.tableView.setModel(tableModel)
self.tableView.show()
db.close()
提前致谢。
阅读文档后,我发现有必要在将查询作为模型添加到 table 视图之前实际执行查询,如下所示:
def searchEvent(self):
'''
Send appropriate search query and display results on the tableView
'''
# Connect to the database
db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("data.sqlite3")
db.open()
# Prepare query
query = QtSql.QSqlQuery(db)
query.prepare("SELECT * FROM SetInfo_view WHERE Name LIKE(?)")
query.bindValue(0, self.searchLineEdit.text())
query.exec_()
# Prepare table model
tableModel = QtSql.QSqlQueryModel()
tableModel.setQuery(query)
self.tableView.setModel(tableModel)
self.tableView.show()
db.close()
来源: