• Qt 中 setModel 设置数据类型和 setView 函数设置视图


    简介:

    Qt 是一个流行的跨平台应用程序开发框架,提供了 setModel 和 setView 函数用于在 Qt 模型视图框架中设置数据模型和视图组件。本文将介绍 setModel 和 setView 函数的使用方法,包括函数原型和代码示例,旨在帮助入门者快速上手。

    setModel 函数原型:

    void QAbstractItemView::setModel(QAbstractItemModel *model);
    
    • 1

    参数说明:

    model: 要设置的数据模型,必须是继承自 QAbstractItemModel 的类的实例。
    同时可以使用类似listWidget->model()作为参数

    setView 函数原型:

    void QAbstractItemModel::setView(QAbstractItemView *view);
    
    • 1

    参数说明:

    view: 要设置的视图组件,必须是继承自 QAbstractItemView 的类的实例。

    QAbstractItemView 是 Qt 中用于展示和编辑数据模型的抽象基类,它提供了一套用于显示和交互的界面。下面是一些常见的 QAbstractItemView 的子类:

    • QTreeView:

    继承自 QAbstractItemView,用于以树状结构展示数据模型。
    支持展开和折叠节点、排序、多列显示等功能。
    适用于需要呈现层次化数据结构的情况。

    • QListView:

    继承自 QAbstractItemView,用于以列表形式展示数据模型。
    支持单列或多列显示、图标视图、流视图等不同的显示模式。
    适用于需要呈现线性结构的数据列表的情况。
    QTableView:

    继承自 QAbstractItemView,用于以表格形式展示数据模型。
    支持表格视图的交互操作,如编辑、选择、排序、过滤等。
    适用于需要呈现二维表格数据的情况。

    • QColumnView:

    继承自 QAbstractItemView,用于以列形式展示数据模型。
    支持多列显示、列间拖拽、排序等功能。
    适用于需要以列形式展示数据的情况。
    QTableView 和 QTreeView 的衍生类:

    • 其他

    Qt 还提供了一些 QTableView 和 QTreeView 的衍生类,如 QTableWidget、QTreeWidget 等。
    这些类继承自 QTableView 和 QTreeView,并提供了更方便的接口和方法来操作和管理数据。
    适用于需要快速创建并展示数据模型的简单情况。

    代码示例:

    #include 
    #include 
    #include 
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        // 创建一个数据模型
        QStandardItemModel model;
        model.setColumnCount(3);
        model.setRowCount(3);
    
        // 设置数据模型的数据
        for (int row = 0; row < model.rowCount(); ++row) {
            for (int column = 0; column < model.columnCount(); ++column) {
                QModelIndex index = model.index(row, column);
                model.setData(index, QString("Row %1, Column %2").arg(row).arg(column));
            }
        }
    
        // 创建一个表格视图组件
        QTableView view;
    
        // 将数据模型设置到表格视图中
        view.setModel(&model);
    
        view.show();
    
        return app.exec();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    在上面的示例中,我们首先创建了一个 QStandardItemModel 数据模型,然后设置模型的行列数,并使用 setData 函数设置了每个单元格的数据。接着,我们创建了一个 QTableView 表格视图组件,并使用 setModel 函数将数据模型设置到表格视图中。最后,我们显示了表格视图。

    总结:

    通过 setModel 和 setView 函数,我们可以在 Qt 模型视图框架中轻松地设置数据模型和视图组件。希望本文提供的函数原型和代码示例能够帮助入门者快速理解 setModel 和 setView 函数的使用方法。随着进一步的学习和实践,您将能够更好地掌握 Qt 的模型视图框架,实现复杂的数据展示和交互功能。

  • 相关阅读:
    kubeadm升级k8s
    keycloak~RequiredActionProvider的使用
    NSSCTF做题(7)
    pdd.order.basic.list.get订单基础信息列表查询接口(拼多多店铺订单列表查询接口)代码对接教程
    LNMP架构&部署Discuz论坛系统
    学习机赛道加速:请“卷”产品,不要“卷”营销
    HCNP Routing&Switching之端口安全
    一份超预期的期中成绩,拨开百果园“高价值迷雾”
    研发效能最佳实践:持续集成应用实践丨IDCF
    Android13深入了解 Android 小窗口模式和窗口类型
  • 原文地址:https://blog.csdn.net/qq_46017342/article/details/130905115