import sys
from PyQt5 import *
from PyQt5.Qt import *
import _sqlite3
# 设置一个ui的类并初始化
class Ui_Form(QWidget):
def __init__(self):
super(Ui_Form, self).__init__()
self.tableView = QTableView(self)
self.tableView.resize(500,500)
self.addmodel()
self.read_db()
def addmodel(self): #添加一个标准model
self.model = QStandardItemModel(4,4)#设置model的行数和列数
self.model.setHorizontalHeaderLabels(["id","姓名","年龄","成绩"])#设置model的表头标签
self.tableView.setModel(self.model)#将model设置为tablebview的model
def read_db(self): #从数据库中读并设置为model的方法
con = _sqlite3.connect("abc.db")#连接数据库
cur = con.cursor()#设置游标对象
a = cur.execute("select * from user;")#利用sql语句将所有记录行读入到变量a中,格式为[()]
hang = 0 #设置一个列的变量容器
for d in a: #a中遍历,遍历出的元组数据存储在d中
item_id = QStandardItem(str(d[0]))#设置单元格为标准item,从元组d中取出所需的值并转换为str
item_name = QStandardItem(str(d[1]))
item_age = QStandardItem(str(d[2]))
item_scope = QStandardItem(str(d[3]))
self.model.setItem(hang,0,item_id)#设置model的单元格数值
self.model.setItem(hang,1,item_name)
self.model.setItem(hang,2,item_age)
self.model.setItem(hang,3,item_scope)
hang=hang+1 #行数+1
#常规窗口操作
app =QApplication(sys.argv)
ui = Ui_Form()
ui.show()
exit(app.exec())
创建QTableView并设置二维数据模型
最新推荐文章于 2024-05-27 14:39:01 发布