表单写入数据的2种方式

吐槽

连接数据库一些奇怪的写法,并不像哪些连接的库那样的语法,奇奇怪怪,很不适应。

正文

1.采用这种方式的是QTableView包,但QTableView也可以写入单个元素到表单中。定义个数据集

self.model = QStandardItemModel(2,2) # QtGui

然后采用将数据集设计为表格模型,然后再每个数据集中写入数据,这样就同步到了表格中。

# 实例化表格视图
self.tableView.setModel(self.model)
# 将每个单元格中的数据写入
 self.model.setItem(r,column,item)

1.1直接写入到每个表格的每个项中
一般采用for循环把对应的数据写入
self.model = QStandardItemModel(2,2)

item=QStandardItem('%s'% rows[r][column])
self.model.setItem(r,column,item)

上方的rows是数据库从数据库中获取的数据

        conn = psycopg2.connect(**PG_SQL_LOCAL)
        cursor = conn.cursor()
        cursor.execute(
        "select type,x_counts from public.members")
        rows = cursor.fetchmany(2000)

1.2.采用数据库模型(QSqlQueryModel),然后将设置模型到具体的表单中(setModel)
PageRecordCount 是每页显示的数量,limitIndex是从第几页的最开始多少个数据

		# 声明查询模型
		self.queryModel = QSqlQueryModel(self) # 直接定义数据库模型,从数据库模型中写入数据
		# 设置模型
		self.tableView.setModel(self.queryModel)
 # 进行sql查询
szQuery = ("select * from student limit %d,%d" % (  limitIndex , self.PageRecordCount ) )
self.queryModel.setQuery(szQuery)

2.采用这种方式的是QTableWidget包

定义QTableWidget表格的数量方式有2种
2.1直接在QTableWidget()参数中定义

        self.table = QTableWidget(3, 5)  # 3 行 5 列的表格

2.2分别定义几行几列

		# 设置四行三列
		tableWidget.setRowCount(4)
		tableWidget.setColumnCount(3)

写入数据的方式setItem
每个单元格的命名都为QTableWidgetItem()

newItem = QTableWidgetItem("张三")

写入数据使用,这里可以使用双for循环来写入数据

tableWidget.setItem(0, 0, newItem) 
posted @ 2022-06-23 10:23  索匣  阅读(189)  评论(0编辑  收藏  举报