QTableView 使用

QTableView 控件是 Qt 框架提供的一个用于显示表格数据的部件。它提供了一个灵活的接口,可以轻松地显示和编辑二维表格数据。以下是 QTableView 控件的一些关键特点和用法:

1.显示数据: QTableView 可以显示由 QAbstractItemModel 提供的数据模型中的数据。您可以使用内置的模型类(如 QStandardItemModel)或自定义的数据模型类。
2.自定义外观: 您可以通过设置不同的视图委托(QStyledItemDelegate)来自定义表格单元格的外观和编辑器,以实现对单元格内容的自定义渲染和编辑。
3.选择和编辑: QTableView 允许用户选择单元格、行或列,并支持对选定数据进行编辑。您可以通过设置适当的编辑触发条件(如双击、按下 Enter 键等)来配置编辑方式。
4.排序和过滤: 您可以通过调用 QTableView 的排序和过滤功能来对表格数据进行排序和过滤,以便用户更轻松地查找和管理数据。
5.自适应大小: QTableView 支持自适应大小,可以根据内容的大小自动调整单元格、行和列的大小,以确保内容适合显示区域。
6.上下文菜单: 您可以为 QTableView 添加上下文菜单,以提供对数据的额外操作(如复制、粘贴、删除等)。
7.信号与槽: QTableView 支持信号与槽机制,您可以连接特定的信号(如单元格编辑完成、行选中等)到自定义的槽函数,以实现特定的功能。

#include <QSqlQueryModel>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QSqlError>
#include <QTableView>
#include <QLabel>
#include <QLineEdit>
#include <QDebug>

//写到你的窗体构造函数内
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("DB.db");

    if (!db.open())
    {
        qDebug() << "Error: Failed to connect database." << db.lastError();
        return;
    }

QString tableName ="yourTableName";
QTableView *tableView = new QTableView();
QSqlQuery query("SELECT * FROM " + tableName, db);
QSqlRecord record = query.record();
QSqlQueryModel *model = new QSqlQueryModel(tableView);
model->setQuery(query);
tableView->setModel(model);

//给tabelview绑定单击信号槽
connect(tableView, &QTableView::clicked, this, &MainWindow::on_table_clicked);


void MainWindow::on_table_clicked(const QModelIndex &index)
{
    QTableView *tableView = qobject_cast<QTableView *>(sender());
    if (!tableView)
        return;

    QAbstractItemModel *model = tableView->model();
    if (!model)
        return;

    int row = index.row();
    int column_count = model->columnCount();
   

    for (int i = 0; i < column_count; ++i)
    {
       qDebug()<<model->data(model->index(row, i)).toString();
    }
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

周不易

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

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

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

打赏作者

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

抵扣说明:

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

余额充值