首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    《QTreeView+QAbstractItemModel自定义模型》:系列教程之三

    QAbstractItemModel:需要使用QTreeView显示数据时,并配合自定义model时,我们从此类继承。 此处我们只关注可以用作QTreeView之model的类QAbstractItemModel与QStandardItemModel。 我们要将数据显示到QTreeView中,按照Model/View框架介绍,需要定义2个类TreeModel和TreeItem,TreeModel继承于QAbstractItemModel,用于向View (3)定义TreeModel类 我们需要继承自QAbstractItemModel,让我们来看看它有哪些接口。 QAbstractItemModel类中定义如下: Q_INVOKABLE virtual QModelIndex index(int row, int column, const QModelIndex

    8.5K11编辑于 2022-07-01
  • 来自专栏跟Qt君学编程

    启用已废弃或过时的Qt方法

    例如QAbstractItemModel类的reset()方法。 QAbstractItemModel.h节选源码: #if QT_DEPRECATED_SINCE(5,0) QT_DEPRECATED void reset() { beginResetModel

    1.1K20编辑于 2023-03-17
  • 来自专栏小徐学爬虫

    多个标签页中复用同一 QTableView

    ())代码例子2:使用同一个 QTableView 过滤数据由于 QTableView 不支持在多个标签页中复用,因此如果需要在多个标签页中显示相同的数据,但需要过滤数据,可以使用以下方法:创建一个 QAbstractItemModel 为每个标签页创建 QTableView,并使用相同的 QAbstractItemModel。为每个 QTableView 设置不同的数据过滤器,以便只显示所需的数据。 480) # Create a QTabWidget to hold the tabs self.tabs = QTabWidget() # Create a QAbstractItemModel to hold the data self.model = QAbstractItemModel() # Create QTableViews for each tab

    1.2K10编辑于 2024-07-10
  • 来自专栏技术之路

    QTableView 一列添加两个按钮

    QStyleOptionViewItem &option, const QModelIndex &index) const; bool editorEvent(QEvent *event, QAbstractItemModel QStyle::CE_PushButton, buttons->second, painter); } bool ButtonDelegate::editorEvent(QEvent *event, QAbstractItemModel index.isValid()) return Qt::NoItemFlags; Qt::ItemFlags flag = QAbstractItemModel::flags(

    4.6K90发布于 2018-01-31
  • 来自专栏全栈程序员必看

    QTreeView 使用

    控件使用的model/view框架,QTreeView实现了QAbstractItemView 里声明的相关接口,由QAbstractItemModel为控件提供显示数据。 自定义数据 1、继承自QAbstractItemModel,实现相关的模型。 2、通过QStandardItemModel和QTreeView连用,用QStandardItem存储每个数据单元。

    79510编辑于 2022-09-05
  • 来自专栏Linux驱动

    26.QT-模型视图之自定义委托

    editor, const QModelIndex & index ); //通过索引值,将模型里的数据提取到编辑器内容里 void setModelData ( QWidget * editor, QAbstractItemModel QWidget * editor, const QModelIndex & index ) const; void setModelData( QWidget * editor, QAbstractItemModel setEditorData(editor, index); } void QCustomizedDelegate::setModelData ( QWidget * editor, QAbstractItemModel QStyleOptionViewItem & option, const QModelIndex & index ) const; bool editorEvent ( QEvent * event, QAbstractItemModel QItemDelegate::paint(painter,option,index); } } bool QCustomizedDelegate::editorEvent ( QEvent * event, QAbstractItemModel

    2.9K21发布于 2018-07-31
  • C/C++ Qt TableDelegate 自定义代理组件

    强制类型转换 spinBox->setValue(value); //设置编辑器的数值}void QWIntSpinDelegate::setModelData(QWidget *editor, QAbstractItemModel setValue(value);}// https://www.cnblogs.com/lysharkvoid QWFloatSpinDelegate::setModelData(QWidget *editor, QAbstractItemModel >(editor); comboBox->setCurrentText(str);}void QWComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel

    1.2K20编辑于 2022-12-23
  • 来自专栏技术之路

    QTableView 添加按钮

    QStyleOptionViewItem &option, const QModelIndex &index) const; bool editorEvent(QEvent *event, QAbstractItemModel drawControl(QStyle::CE_PushButton, button, painter); } bool ButtonDelegate::editorEvent(QEvent *event, QAbstractItemModel index.isValid()) return Qt::NoItemFlags; Qt::ItemFlags flag = QAbstractItemModel::flags(

    3.1K60发布于 2018-01-31
  • 来自专栏用户2442861的专栏

    Qt数据库sqlite总结

    使QSqlQueryModel类  创建的数据库能读写,继承QAbstractItemModel类 刚开始我们就讲到,这个模型默认是只读的,所以我们在窗口上并不能对表格中的内容进行修改。 bool QAbstractItemModel::setData ( const QModelIndex & index, const QVariant & value, int role = Qt:: EditRole ) //设置根据index索引到的value值 Qt::ItemFlags QAbstractItemModel::flags ( const QModelIndex & index  ) const  //返回给定的index索引的标志 QVariant QAbstractItemModel::data ( const QModelIndex & index, int role =  QSqlRelationalTableModel->Inherits  QSqlTableModel->Inherits  QSqlQueryModel->Inherits  QAbstractTableModel->Inherits  QAbstractItemModel

    3.6K20发布于 2018-09-20
  • ​Qt QTreeView 使用方法详解

    default: return {}; }}二、自定义模型实现2.1 实现简单树形模型// 组织架构模型示例class OrganizationModel : public QAbstractItemModel name(std::move(name)), parent(parent) {} }; explicit OrganizationModel(QObject* parent = nullptr)QAbstractItemModel persistentIndex);}6.2 模型重置的正确方式1. beginResetModel()/endResetModel() 使用场景class DynamicModel : public QAbstractItemModel 智能指针管理方案// 安全节点结构设计class TreeModel : public QAbstractItemModel { struct Node { QString id; 智能指针结合方案// 带缓存的模型设计class CachedModel : public QAbstractItemModel { struct Node { std::string

    1.2K10编辑于 2025-05-28
  • 来自专栏用户2442861的专栏

    Qt 学习之路 2(45):模型

    在 Qt 中,这个接口由QAbstractItemModel类进行定义。不管底层数据是如何存储的,只要是QAbstractItemModel的子类,都提供一种表格形式的层次结构。 1 QAbstractItemModel *model = index.model(); 模型索引提供了所需要的信息的临时索引,可以用于通过模型取回或者修改数据。 我们可以通过文档查看这个函数的原型: 123 QModelIndex QAbstractItemModel::index(int row,                                      

    1.1K20发布于 2018-09-20
  • 来自专栏跟Qt君学编程

    Qt 第三方库 - QJsonModel

    QJsonModel是基于QAbstractItemModel的Qt5/C++11/Python的json树模型类。   QJsonModel可以很方便地显示json数据到QTreeView中。

    1.2K30编辑于 2023-03-17
  • 来自专栏Qt6 研发工程师

    QTableView + QStandardItemModel模式显示表格冻结列(模板)

    QTableView 支持多种数据模型,如 QAbstractItemModel,并且可以与模型一起使用,以提供数据视图。此外,QTableView 还提供了排序、筛选和分组等功能,以满足不同的需求。 它是一个基于 QAbstractItemModel 的实现,提供了简单易用的 API 来创建和管理表格数据。 definition]class FreezeTableWidget : public QTableView { Q_OBJECTpublic: FreezeTableWidget(QAbstractItemModel freezetablewidget.h"#include <QScrollBar>#include <QHeaderView>FreezeTableWidget::FreezeTableWidget(QAbstractItemModel

    2.7K10编辑于 2024-07-29
  • 来自专栏Pou光明

    Qt Model/View教程——只读Table

    由于视图类不知道数据的结构,因此需要提供包装器以使数据符合QAbstractItemModel接口【译者注:这就是为什么要setMode】。 View使用该接口进行读取和写入数据,实现QAbstractItemModel的类的任何实例都称为模型【译者注:什么是Model】。 我们有一个表数据集,因此让我们从QAbstractTableModel开始,因为它比更通用的QAbstractItemModel更加易于使用。

    2.9K20发布于 2020-02-12
  • C/C++ Qt TableDelegate 自定义代理组件

    强制类型转换 spinBox->setValue(value); //设置编辑器的数值 } void QWIntSpinDelegate::setModelData(QWidget *editor, QAbstractItemModel value); } // https://www.cnblogs.com/lyshark void QWFloatSpinDelegate::setModelData(QWidget *editor, QAbstractItemModel editor); comboBox->setCurrentText(str); } void QWComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel

    89620编辑于 2022-12-28
  • 来自专栏全栈程序员必看

    QT 播放器之列表[通俗易懂]

    该Model需要存储 当前播放索引 添加的媒体链接 播放模式 第一步,重写 QAbstractItemModel 的虚函数 // QAbstractItemModel interface public playbackMode() const { return m_mode; } 完整代码: #ifndef MEDIALISTMODEL_H #define MEDIALISTMODEL_H #include <QAbstractItemModel > #include <QMediaContent> class MediaListModel : public QAbstractItemModel { Q_OBJECT public: playbackMode()const; QModelIndex currentIndex()const; void setPlayIndex(int index); // QAbstractItemModel medialistmodel.h" #include <QFileInfo> #include <QDebug> MediaListModel::MediaListModel(QObject *parent) : QAbstractItemModel

    2.3K40编辑于 2022-07-01
  • C++ Qt开发:QItemDelegate自定义代理组件

    // 设置编辑器的数值}// 将代理组件的数据,保存到数据模型中void QWIntSpinDelegate::setModelData(QWidget *editor, QAbstractItemModel QDoubleSpinBox*>(editor); spinBox->setValue(value);}void QWFloatSpinDelegate::setModelData(QWidget *editor, QAbstractItemModel >(editor); comboBox->setCurrentText(str);}void QWComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel

    3.2K11编辑于 2023-12-20
  • 来自专栏python3

    python 中的嵌套类

    经常出现如下代码: import sys import ida_funcs import ida_kernwin from PyQt5.QtCore import ( # noqa: I202 QAbstractItemModel _delegate.paint(painter, option, index) class ProxyItemModel(QAbstractItemModel): def __

    5.7K30发布于 2020-01-10
  • C++ Qt开发:数据库与TableView多组件联动

    QItemSelectionModel 用于管理项选择的模型类,它是 QAbstractItemModel 类的衍生类。 以下是 QItemSelectionModel 的一些常用方法,概述成表格形式: 方法 描述 QItemSelectionModel(QAbstractItemModel *model) 构造函数,创建一个选择模型并关联指定的数据模型 setModel(QAbstractItemModel *model) 设置关联的数据模型。 model() const 返回与此选择模型相关联的数据模型。 setModel(QAbstractItemModel *model) 设置映射的数据模型。 model() const 返回与此数据映射器相关联的数据模型。

    1.8K10编辑于 2023-12-27
  • 来自专栏半生瓜のblog

    【QT】QT模型/视图

    模型 所有的模型都基于QAbstractItemModel类,该类提供了十分灵活的接口来处理各种视图,这些视图的数据表现形式为表格(table)、列表(list)、树(tree)。 当标准模型还无法满足需要时,可子类化QAbstractItemModel、QAbstractListModel或QAbstractTableModel来创建自定义的模型。 ---- 示例1: #include<QApplication> #include<QAbstractItemModel> #include<QAbstractItemView> #include<QDirModel index.isValid()) { return Qt::ItemIsEnabled; } return QAbstractItemModel::flags(index

    4.9K20编辑于 2023-05-13
领券