QSqlTableModel 与 QTableView 如何连接?
How to connect QSqlTableModel with QTableView?
我想要一个连接 QSqlTableModel 和 QTableView 的简单例子,
将 QSqlTableModel 连接到数据集文件 (*.db),然后将其连接到 QTableView ?
半代码:
from PyQt5 import QtWidgets, QtGui, QtCore, QtSql
class Main(QtWidgets.QWidget):
def __init__(self):
super().__init__()
layout = QtWidgets.QVBoxLayout()
self.table = QtWidgets.QTableView()
layout.addWidget(self.table)
self.setLayout(layout)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
main = Main()
main.resize(600, 600)
main.show()
app.exec_()
过程是:
- 通过QSqlDatabase打开数据库
- 然后将table加载到模型中,然后
- 最后在视图中设置模型。
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("/path/of/database.db")
if not db.open():
sys.exit(-1)
model = QtSql.QSqlTableModel()
model.setTable("your_table")
model.select()
view = QtWidgets.QTableView()
view.setModel(model)
view.show()
sys.exit(app.exec_()
注意:在sqlite的情况下,如果数据库不存在那么它会创建它所以db.open()
很少returnsfalse.
我想要一个连接 QSqlTableModel 和 QTableView 的简单例子, 将 QSqlTableModel 连接到数据集文件 (*.db),然后将其连接到 QTableView ?
半代码:
from PyQt5 import QtWidgets, QtGui, QtCore, QtSql
class Main(QtWidgets.QWidget):
def __init__(self):
super().__init__()
layout = QtWidgets.QVBoxLayout()
self.table = QtWidgets.QTableView()
layout.addWidget(self.table)
self.setLayout(layout)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
main = Main()
main.resize(600, 600)
main.show()
app.exec_()
过程是:
- 通过QSqlDatabase打开数据库
- 然后将table加载到模型中,然后
- 最后在视图中设置模型。
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("/path/of/database.db")
if not db.open():
sys.exit(-1)
model = QtSql.QSqlTableModel()
model.setTable("your_table")
model.select()
view = QtWidgets.QTableView()
view.setModel(model)
view.show()
sys.exit(app.exec_()
注意:在sqlite的情况下,如果数据库不存在那么它会创建它所以db.open()
很少returnsfalse.