model/view

 注意:view中这样设置tabelView.setEditTriggers(QAbstractItemView::NoEditTriggers)在界面点击无法显示编辑器,需要和后面一段结合就能达到不能编辑又能显示控件

 view->openPersistentEditor(mTtemModel->index(0, 8)); //持久显示控件
 //渲染相关的接口
    void paint(QPainter *painter,
               const QStyleOptionViewItem &option, const QModelIndex &index) const override;
    QSize sizeHint(const QStyleOptionViewItem &option,
                   const QModelIndex &index) const override;

    //编辑相关的接口  用于创建编辑器
    QWidget *createEditor(QWidget *parent,
                          const QStyleOptionViewItem &option,
                          const QModelIndex &index) const override;
    //将模型中的数据赋值给编辑器   如果没有把数据设置给编辑器,那么用户在编辑时候,编辑器上不会有默认的数据显示(原始数据显示在原位置 方便更改对比)
    void setEditorData(QWidget *editor, const QModelIndex &index) const override;
   //将编辑器的值赋值给model  用户在编辑器上更该数据,已更改的数据将显示到view,如果不设置,则无法显示已更改的内容
    void setModelData(QWidget *editor,
                      QAbstractItemModel *model,
                      const QModelIndex &index) const override;
    //更新编辑器的位置大小
    void updateEditorGeometry(QWidget *editor,
                              const QStyleOptionViewItem &option,
                              const QModelIndex &index) const override;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5的Model/View是一种用于创建用户界面的框架。它基于MVC(Model-View-Controller)设计模式,提供了一种将数据和界面分离的方法。 Model/View框架中,Model负责管理和提供数据,View负责数据的可视化展示,而两者之间由Controller进行交互。 在PyQt5中,Model通常是QAbstractItemModel类或其子类的实例。它提供了一种标准的接口,用于管理和操作数据。通过Model,我们可以对数据进行添加、删除和修改等操作,并在这些操作之后通知View进行更新。 View则是用户界面上的部件,如QTreeViewQTableView或QListView等。它负责将Model中的数据以视觉化的方式展示给用户,并根据用户的操作与Model进行交互。View会通过信号与槽机制、或直接获取Model的数据来更新界面。 在Model/View框架中,ModelView之间是通过索引(Index)进行连接的。索引是一个由Model提供的标识,用于标记数据的位置和层级关系。View在显示数据时,会根据索引来获取数据的值,并根据需要进行格式化或呈现。 通过Model/View框架,我们可以实现数据和界面的解耦合,通过更改Model中的数据来自动更新界面。同时,Model/View也提供了一些方便的方法和信号,用于处理数据的排序、过滤和选择等操作。 总而言之,PyQt5的Model/View是一种用于创建用户界面的框架,可以通过数据模型和视图来管理和展示数据。它可以使用户界面更加直观、灵活和易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值