表单写入数据的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)
努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。