QT下的QSqlQueryModel类

QSqlTableModel,该类提供了一个可读写单张SQL表的可编辑数据模型。我们下面就对其的几个常用功能进行介绍,分别是修改,插入,删除,查询,和排序。

查询操作:

QSqlQueryModel *model = new QSqlQueryModel;
    QString temStr,strSQL="SELECT * FROM potion where ";
    temStr=this->ui->comboBox_6->currentText();
    strSQL+=temStr+"=";
    strSQL+="'"+this->ui->potion_cha->text()+"'";
    model->setQuery(strSQL);//这里直接设置SQL语句,忽略最后一个参数
    ui->tableView_5->setModel(model);

    //以下是视觉方面的效果,不加也没影响

    //隔行变色
    ui->tableView_5->setAlternatingRowColors(true);

    //设置行高
    int row_count = model->rowCount();
    for(int i =0; i < row_count; i++)
    {
        ui->tableView_5->setRowHeight(i, 20);
    }

 

 

 

 

删除操作:
 
 QSqlQueryModel *model = new QSqlQueryModel;
    QString temStr,strSQL="delete FROM potion where ";
    temStr=this->ui->comboBox_7->currentText();
    strSQL+=temStr+"=";
    strSQL+="'"+this->ui->potion_del->text()+"'";
    model->setQuery(strSQL);//这里直接设置SQL语句,忽略最后一个参数

修改操作:

 

QSqlQueryModel *model = new QSqlQueryModel;
    QString temStr,strSQL="update potion set ";
    temStr=this->ui->comboBox_8->currentText();
    strSQL+=temStr+"=";
    strSQL+="'"+this->ui->potion_updata->text().trimmed()+"'";
    strSQL+=" where 药剂代号=";
    strSQL+=""+this->ui->potion_id->text().trimmed()+"";
//    query.exec(QObject::tr("update potion set id=333 where id=5"));
    model->setQuery(strSQL);//这里直接设置SQL语句,忽略最后一个参数

插入操作:

 QSqlQueryModel *model = new QSqlQueryModel;
    QString strSQL="INSERT INTO job (job_id, job_name, dept_id) VALUES (1, 2, 3) ";
    model->setQuery(strSQL);//这里直接设置SQL语句,忽略最后一个参数

将SQL数据显示在tableView

 ui->tableView_5->setModel(model);

    //以下是视觉方面的效果,不加也没影响

    //隔行变色
    ui->tableView_5->setAlternatingRowColors(true);

    //设置行高
    int row_count = model->rowCount();
    for(int i =0; i < row_count; i++)
    {
        ui->tableView_5->setRowHeight(i, 20);
    }

 

 

`QSqlQueryModel`是一个用于在Qt中显示数据库查询结果的模型。它本身并不提供直接改变列宽度的方法,因为它是一个数据模型,负责提供数据,而不涉及视图的显示。 要改变`QSqlQueryModel`在`QTableView`中的列宽度,你可以通过设置`QHeaderView`来实现。下面是一个示例代码,展示了如何改变列宽度: ```cpp #include <QTableView> #include <QHeaderView> #include <QSqlQueryModel> // 创建一个QSqlQueryModel对象 QSqlQueryModel* model = new QSqlQueryModel(this); // 设置查询语句或执行查询等操作 // 获取TableView的指针 QTableView* tableView = ui->tableView; // 设置模型 tableView->setModel(model); // 获取Horizontal Header的指针 QHeaderView* header = tableView->horizontalHeader(); // 设置第一列的宽度为100像素 header->resizeSection(0, 100); ``` 在上述示例中,我们首先创建了一个`QSqlQueryModel`对象,并设置了查询语句或执行了查询操作来获取数据。然后,我们获取了一个`QTableView`的指针,并将模型设置为该TableView的模型。接下来,获取到了Horizontal Header的指针,通过`tableView->horizontalHeader()`获取。最后,使用`resizeSection`方法来设置特定列的宽度。 你可以根据需要多次调用`resizeSection`方法以改变多个列的宽度。 通过这种方式,你可以在使用`QSqlQueryModel`时改变列宽度。请确保在调用上述代码之前,模型已经被设置和填充了数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的书包哪里去了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值