• 表单写入数据的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) 
    
  • 相关阅读:
    机房管理系统
    Red_Black_Tree C++
    Binary_Seach_Tree(BST) C++
    贪吃蛇小笔记
    转-Unix系统进程对SIGTERM、SIGUSR1和SIGUSR2信号处理
    My Dev Env
    mac gdb home-brew
    pub python
    ioctl siocgifhwaddr mac os x
    macbook与外接显示器
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/16404246.html
Copyright © 2020-2023  润新知