QT QtableView与QSqlTableModel

先列出几个tableview常用的几个函数:

   model_common_7E->setEditStrategy(QSqlTableModel::OnFieldChange);//设定何时将tableview的更改更新到数据库?行变化时、域(列)变化时、手动更新

ui->tableView->setModel(model_common_7E);//sql模型与tableView绑定
    ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);//选择模式:只能选中单个单元格、可以选中矩形区域、是否支持按住CTRL/shift选择等
    ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);//选择后的显示行为:显示选中单元格、显示选中的行、显示选中的列
    ui->tableView->resizeColumnsToContents();//重新调整列以自适应内容的宽度
    ui->tableView->setSortingEnabled(true);//排序使能
    ui->tableView->horizontalHeader()->sortIndicatorOrder();//在水平头显示排序按钮
    ui->tableView->hideColumn(0);//隐藏第n列,一般可用于连接数据库后隐藏主键所在的列
    ui->tableView->verticalHeader()->setSectionsMovable(true);//使能:鼠标按住行号(行名)可自由拖动行的位置
    ui->tableView->horizontalHeader()->setSectionsMovable(true);//使能:鼠标按住列名可自由拖动列的位置
    ui->tableView->horizontalHeader()->moveSection(0,2);//用程序把第0列挪动到第2列的位置(注:仅改变视图显示的位置,不改变逻辑位置)

2、通过行号、列名称来获取某单元格的数据

注:model中的一行称为一条record,一列称为一条field

两种方法:

方法(1),使用QSqlRecord类

QSqlRecord record;//获取model某行的所有内容
QSqlTableModel model;
record = model->record(2);//读取第2行的所有数据
QString name = record.value("name").toString();//从第2行中读出列名为name的那一列的数据
方法(2),使用model自己的成员函数

    int columun_idx = model->fieldIndex("name");//获取列名为name的列的列号
    QModelIndex index = model->index(2,columun_idx);//定位到第2行,第columun_idx列
    QString name_str = model->data(index).toString();//读取数据



  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值