0924QSqlTableModel

PyQt5 用QSqlTableModel操作sql数据库(插入新的列和setFilter()的使用) 这篇主要是解决在pyqt5中,如何用QSqlTableModel模型为数据库添加新列,以及在执行查询操作时,如何使用setFilter()进行过滤。 添加新列之前: self.model = QSqlTableModel(self) self.model.setTable("reference") self.model.setSort(ID, Qt.AscendingOrder) self. 阅读详情
import sys
from PyQt5.QtSql import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class demoWin(QDialog):
    def __init__(self):
        super(demoWin, self).__init__()
        self.intiUI()

    def closeEvent(self, QCloseEvent):
        self.db.close

    def intiUI(self):
        self.setWindowTitle('0924QSqlTableModel')
        self.resize(430, 450)

        self.view = QTableView()
        self.customTableView()
        self.addBtn = QPushButton('Add Line')
        self.addBtn.clicked.connect(self.addRow)
        self.delBtn = QPushButton('Delete Line')
        self.delBtn.clicked.connect(self.delRow)

        vBox = QVBoxLayout()
        vBox.addWidget(self.view)
        vBox.addWidget(self.addBtn)
        vBox.addWidget(self.delBtn)

        self.setLayout(vBox)

    def addRow(self):
        ret = self.model.insertRows(self.model.rowCount(), 1)
        print('insertRows = %s' % str(ret))

    def findRow(self):
        i = 1
        return i

    def delRow(self, i):
        ret = self.model.removeRow(self.view.currentIndex().row())

    def customTableView(self):
        self.db = QSqlDatabase.addDatabase('QSQLITE')
        self.db.setDatabaseName('D:/OneDrive/CS/PyQt/PyQtdatabase123.db')
        #这样没用,检查不了连接状态
        # if not db.open():
        #     QMessageBox.critical(None, ("无法打开数据库"), ("正文:无法建立到数据库的连接"), QMessageBox.Cancel)
        # else:
        #     QMessageBox.information(None, ("成功打开数据库"), ("正文:已连接到数据库"), QMessageBox.Ok)Ok
        #db.open()
        #设置显示模式
        self.model = QSqlTableModel()
        self.model.setTable('people')
        self.model.setEditStrategy(QSqlTableModel.OnFieldChange)
        self.model.select()
        self.model.setHeaderData(0, Qt.Horizontal, "ID")
        self.model.setHeaderData(1, Qt.Horizontal, "name")
        self.model.setHeaderData(2, Qt.Horizontal, "address")

        self.view.setModel(self.model)
        self.view.setWindowTitle('Table Model(View 1)')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = demoWin()
    win.show()
    sys.exit(app.exec_())

 

关于QSqlTableModel的使用说明(QT上创建本地SQL) 前言:通常我们操作数据库时,需要使用sql语句;在qt开发环境中提供了QSqlTableModel类,它可以通过简单的接口去操作数据库,即使不熟悉sql语句也可以对数据库进行大部分的操作,而且该模型还具有数据缓存功能,在修改数据后并不是立刻同步到数据库中,允许用户进行数据撤回,如果已经提交到数据库的数据就不能进行撤回了;QSqlTableModel还有一个非常方便的操作就是它可以将数据库的所有记录显示到QTableView控件上,并可以直接通过QTableView控件对数据库任意位置的数据进行修改。下面就Q 阅读详情

相关推荐

Qt QSqlTableModel详解

用户接口层 用户接口层的几个类实现将数据库中的数据链接到窗口部件上,这些类是使用模型/视图框架实现的,他们是更高层次的抽象,主要包括QSqlQureyModel,: 直接设置一个数据表的名称,可以获取数据表的全部记录,结果是可编辑的。直接设置一个数据表的名称,可以获取数据表的全部记录,结果是可编辑的。//设置记录数据的过滤条件,过滤的字符串实际上为sql语句where后的字段。//QModelIndex 类的data函数,从而得到某行某列的数据。//查询数据表的数据,并使用设置的排序和过滤。

baidu_16370559的博客 6222

QTableView/QSqlTableModel实战案例

操作流程: 1、在ui中添加QTableView控件 2、连接数据库 3、创建模式,建立表格与数据库的关系       QSqlTableModel *model = new QSqlTableModel(ui->tableView,db); 4、设置模块关联的表       model->setTable(tablename); 5、执行查询      model->sele...

Lawrence_121 1042

Qt数据库(六)QSqlTableModel

本文章原创于www.yafeilinux.com 转载请注明出处。在上一篇我们讲到只读的QSqlQueryModel也可以使其可编辑,但是很麻烦。Qt提供了操作单表的QSqlTableModel,如果我们需要对表的内容进行修改,那么我们就可以直接使用这个类。QSqlTableModel,该类提供了一个可读写单张SQL表的可编辑数据模型。我们下面就对其的几个常用功能进行介绍,分别是修改,

水云间 7517

QSqlTableModel】QT数据库的数据模型---QSqlTableModel

定义: 数据库的数据模型是将SQL语句对数据库的访问完全对象化,将SQL语句的执行封装成对象及其成员函数的实现,同时也对象化了QT的表格界面,实现了数据库访问的高耦合性,屏蔽了数据库访问的内部细节,将数据库的访问简化成调用对象的接口(成员函数)。 QSqlTableModle类: 成员函数: 1.绑定表格(数据库的表) [virtual] void QSqlTableModel::setTable(const QString &tableName); //传入表格名 2.插入 插入一条记录 --

皮皮不调皮的博客 6051

[Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel

[Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel 楼主  发表于 2013-5-21 20:36:22 | 查看: 923| 回复: 7 SQL表格模型QSqlTableModel 版权声明 该文章原创于作者yafeilinux,转载请注明出处! 导

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 4181

【Qt】数据库实战之QSqlTableModel模型

00. 目录 文章目录00. 目录01. 概述02. 开发环境03. QSqlTableModel基本操作04. QSqlTableModel修改操作05. QSqlTableModel查询操作06. QSqlTableModel排序操作07. QSqlTableModel删除操作08. QSqlTableModel插入操作09. QSqlTableModel总结10. 附录 01. 概述 只读的QSqlQueryModel模型其实也可以实现编辑功能的,但是实现起来很麻烦。而QSqlTableModel提供

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 1万+

SQL表格模型QSqlTableModel

QSqlTableModel The QSqlTableModel class provides an editable data model for a single database table. QSqlTableModel is a high-level interface for reading and writing database records from a single

u013402772的专栏 7512

qsql 关联_PyQt QSqlTableModel 的使用

创建数据模型self.model = QtSql.QSqlTableModel(self)self.model.setTable('user')self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)self.model.select()复制代码setTable() 是指定当前 model 关联的是哪张表。setEditStrat...

weixin_34737524的博客 1863

QTableView + QSqlTableModel

1. 基础设置database = QSqlDatabase::addDatabase("QSQLITE"); database.setDatabaseName("data.db"); database.open(); tableview = new QTableView; sModel = new QSqlTableModel(this,database); sModel->setTabl...

zr518的博客 2085

与表格关联的模型QSqlTableModel

4.2 与表格关联的模型 如果要编辑数据库中的数据,城使用QSqlTableModel类。 QSqlTableModel类的继承层次如下: QObject - QAbstractltemModel - QAbstractTableModel - QSqlQueryModel - QSqlTableModel QSqlTableModel类的构造函数为: QSqlTableModel([QObject parent = Q_NULLPTR][, QSqlDatabase db = QSqlDatabase()

qq_656236576的博客 903

QSqlTableModel的用法

https://github.com/mygit03/SqlModel.git 参考教程 SQL模型类-QSqlTableModel模型

梦之旅的专栏 1392

Qt数据库之QSqlTableModel

Qt数据库之QSqlTableModel 我们熟知的qt数据库操作是使用QSqlDatabase和QSqlQuery。今天我来介绍一下使用QSqlTableModel来操作数据库的心得。 QSqlTableModel类为单个数据库表提供可编辑的数据模型。 QSqlTableModel是从单个表读取和写入数据库记录的高级接口。它构建在较低级别的QSqlQuery之上,可用于提供数据以查看QTa

vczl的博客 1823

QSqlTableModel 使用方法

Qt QSqlTableModel 使用心得 连接数据库 执行sql查询,条件显示,排序 获取记录数,列数以及记录内容,字段内容 新增,修改,删除,恢复 其它 1---------------连接数据库(我用的access2003做实验) 在.pro文件添加 QT +=SQL win32:CONFIG+=console -----------------------

light1028的专栏 3万+

QSqlTableModel的使用

注意:组件的editable属性要勾上 myMainWindow.py import sys from PyQt5.QtWidgets import (QApplication,QMainWindow,QFileDialog,QAbstractItemView,QMessageBox,QDataWidgetMapper) from PyQt5.QtCore import (pyqtSlot,Qt,QItemSelectionModel,QModelIndex,QFile,QIODevice) fr

salmonwilliam的博客 2620

【qml】使用C++实现QML的TreeView Model

使用C++实现QML的TreeView Model (一) 分类: C/C++2016-04-13 22:27:24 QML中的数据访问组件如ListView、TableView、GridView通常使用ListModel做为数据提供者,这种应用有相当大局限性,如无法访问本地文件系统、无法连接到传统的SQL数据库,所以通常在使用中都是通过C++实现数据访问,通过QML进行数据展示和编辑,常用的数据...

qq_43248127的博客 2022

Qt中Qtableview的使用1(QSqlTableModel模型)

#include "mainwindow.h" #include "ui_mainwindow.h" #include<QMessageBox> #include<QSqlQuery>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setup

len_yue_mo_fu的博客 3075
上一篇: 7.3.5 QT Designer:界面显示与业务逻辑的分离
下一篇: 0925DataGrid
royzdr
博客等级 码龄16年 15粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值