可视化数据库——model(数据)/view(视图)

 一、创建显现数据库视图

1、创建并打开数据库

2、设置模型
    QSqlTableModel *model = new QSqlTableModel(this);
    //模型自动关联刚刚打开的数据库
    model->setTable("student");//关联数据库中的表student
    
3、把model放在view
    ui->tableView->setModel(model);//tableView是设计师中的QTableView
    model->select();//显示model里的数据

  

二、细节

    model->setHeaderData(0, Qt::Horizontal, "学号");//设置表头
    //设置model的编辑策略为手动提交修改
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    //设置view视图上不允许修改数据
    ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

 

三、添加删除和保存

  

//添加
void Widget::on_buttonAdd_clicked()
{
    //添加空记录
    QSqlRecord record = model->record(); //获取空记录
    //获取行号
    int row = model->rowCount();
    model->insertRecord(row, record);
}
//提交(即确定)
void Widget::on_buttonSure_clicked()
{
    model->submitAll(); //提交动作
}
//撤销
void Widget::on_buttonCancel_clicked()
{
    model->revertAll(); //取消所用动作
    model->submitAll(); //提交动作
}
//删除
void Widget::on_buttonDel_clicked()
{
    //获取选中的模型
    QItemSelectionModel *sModel =ui->tableView->selectionModel();
    //取出模型中的索引
    QModelIndexList list = sModel->selectedRows();
    //删除所有选中的行
    for(int i = 0; i < list.size(); i++)
    {
        model->removeRow( list.at(i).row() );
    }
}
//查找
void Widget::on_buttonFind_clicked()
{
    QString name = ui->lineEdit->text();
    QString str = QString("name = '%1'").arg(name);
    model->setFilter(str);
    model->select();
}

 

转载于:https://www.cnblogs.com/wangbin-heng/p/9769113.html

PyQt5的Model/View是一种用于创建用户界面的框架。它基于MVC(Model-View-Controller)设计模式,提供了一种将数据和界面分离的方法。 Model/View框架中,Model负责管理和提供数据View负责数据可视化展示,而两者之间由Controller进行交互。 在PyQt5中,Model通常是QAbstractItemModel类或其子类的实例。它提供了一种标准的接口,用于管理和操作数据。通过Model,我们可以对数据进行添加、删除和修改等操作,并在这些操作之后通知View进行更新。 View则是用户界面上的部件,如QTreeView、QTableView或QListView等。它负责将Model中的数据以视觉化的方式展示给用户,并根据用户的操作与Model进行交互。View会通过信号与槽机制、或直接获取Model数据来更新界面。 在Model/View框架中,ModelView之间是通过索引(Index)进行连接的。索引是一个由Model提供的标识,用于标记数据的位置和层级关系。View在显示数据时,会根据索引来获取数据的值,并根据需要进行格式化或呈现。 通过Model/View框架,我们可以实现数据和界面的解耦合,通过更改Model中的数据来自动更新界面。同时,Model/View也提供了一些方便的方法和信号,用于处理数据的排序、过滤和选择等操作。 总而言之,PyQt5的Model/View是一种用于创建用户界面的框架,可以通过数据模型和视图来管理和展示数据。它可以使用户界面更加直观、灵活和易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值