`
qimo601
  • 浏览: 3446421 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

View与Model绑定注意事项 (视图无数据显示)

    博客分类:
  • Qt
阅读更多

 

Qt 中视图与模型绑定时,模型必须使用new来创建。否则刚开始初始化的时候,视图无数据显示,或者后期视图不能随着模型的改变而改变

 

具体原因:我猜测是局部变量生命周期的问题。new 的变量在堆中,除非手动释放,否则一直存在。如果不new一个Model,把Model变量放在类成员变量中,视图就可以正常显示数据了。

 

Eorror错误的写法

 

QStandardItemModel model(4,2);  
  
  
model.setHeaderData(0, Qt::Horizontal, tr("Label"));  
model.setHeaderData(1, Qt::Horizontal, tr("Quantity"));  
  
  
ui.tableView->setModel(&model);  
  
for (int row = 0; row < 4; ++row) {  
    for (int column = 0; column < 2; ++column) {  
        QModelIndex index = model.index(row, column, QModelIndex());  
        model.setData(index, QVariant((row+1) * (column+1)));  
    }  
}  
   

 

Right 正确的写法

 

QStandardItemModel *model;  
  
model = new QStandardItemModel(4,2);  
ui.tableView->setModel(model);  
  
model->setHeaderData(0, Qt::Horizontal, tr("Label"));  
model->setHeaderData(1, Qt::Horizontal, tr("Quantity"));  
  
for (int row = 0; row < 4; ++row) {  
    for (int column = 0; column < 2; ++column) {  
        QModelIndex index = model->index(row, column, QModelIndex());  
        model->setData(index, QVariant((row+1) * (column+1)));  
    }  
}  

 

分享到:
评论

相关推荐

    vue 入门,v-model数据绑定

    `v-model`是Vue中的一个指令,用于实现双向数据绑定,它使得视图(View)与模型(Model)之间的数据同步变得简单。这种机制让开发者能够在用户界面的表单控件上直接操作数据,同时更新视图,极大地提高了开发效率。 ...

    BaseObservable 实现数据模型 Model 与视图 View 双向绑定

    在Android开发中,双向数据绑定是一项重要的功能,它允许数据模型(Model)和视图(View)之间的自动同步,减少了手动设置和更新视图的工作。Jetpack库中的Data Binding库提供了一种优雅的方式来实现这种绑定,而...

    C#使用数据绑定控件录入数据

    9. 表示层与业务逻辑层分离:数据绑定使得UI与数据模型之间的关系更加清晰,有利于实现MVC(Model-View-Controller)或MVVM(Model-View-ViewModel)架构,提高代码的可维护性和复用性。 10. LINQ to SQL 和 Entity...

    WPF 数据绑定 命令绑定 事件绑定 View和ViewModel的通信 MVVM模式

    MVVM模式将应用程序分为三个部分:Model(模型)负责业务逻辑和数据,View(视图)负责显示UI,而ViewModel(视图模型)作为View和Model之间的桥梁,处理数据转换和命令执行。这种分离使得UI设计和业务逻辑可以独立...

    Model View Presenter vs Model View Controller

    3. **Presenter**:介于View和Model之间,它接收View的事件并处理这些事件,然后更新Model或与Model交互以获取数据。Presenter也负责将Model的数据呈现给View。 MVP的主要优点是: - 测试友好:由于Presenter隔离了...

    Visual C#中的数据绑定, 数据绑定根据不同组件可以分为二种

    3. MVVM(Model-View-ViewModel)模式:这是一种流行的设计模式,鼓励使用数据绑定来分离视图和业务逻辑。ViewModel作为视图和模型之间的桥梁,提供可绑定的属性,使视图能够响应数据变化。 4. Linq to SQL、Entity...

    QT 自定义混合控件——基于View/Model/Delegate的QTableView/QTreewidget/Combobox实现

    4. **Model/View**:这是QT GUI编程的核心概念,模型负责存储和管理数据,视图负责显示数据,而委托(Delegate)则负责在视图中呈现模型的数据。通过自定义委托,你可以实现特定的绘制和行为逻辑,例如在单元格中...

    qt model view Delegate的例子

    4. **数据绑定**:使用`setModel()`方法将模型与视图关联起来,让视图能够显示模型中的数据。 5. **信号与槽机制**:Qt的事件处理机制,当模型数据改变时,通过`dataChanged()`信号通知视图更新显示;同样,视图的...

    MVVMDemo--view和model之间的互相更改.rar

    ViewModel负责处理View与Model之间的数据绑定,使得当Model的数据发生变化时,View可以自动更新;同样,当用户在View上进行操作时,ViewModel也能相应地更新Model。 1. **Model层**:这是应用程序的数据模型,通常...

    MVVM模式模型-视图-视图模型(Model-View-ViewModel)

    组成部分Model、View、ViewModel,程序=数据结构+算法。Model就是数据结构,ViewModel实现算法数据处理,View实现数据展现。 View:UI界面 ViewModel:它是View的抽象,负责View与Model之间信息转换,将View的...

    WPF UI数据绑定

    其中,数据绑定是WPF中的核心特性,允许UI元素与应用程序中的数据源进行交互,实现了视图(View)和模型(Model)之间的自动同步,极大地简化了UI开发和维护。 ### 数据绑定基本概念 1. **数据源(DataSource)**:...

    PyQt4 Model View Tutorial 源代码

    在PyQt4中,Model/View编程模式是一个核心概念,它分离了数据的逻辑表示和其在用户界面中的显示方式,实现了数据与视图的解耦。下面我们将逐一探讨这些教程源码中涉及的知识点。 1. **模型(Model)**:模型是数据...

    实现数据与视图双向绑定功能

    在Java开发中,数据与视图的双向绑定是一项重要的技术,它使得模型(数据)的改变能够自动反映到视图上,反之亦然。这种机制极大地简化了用户界面的更新和数据管理,尤其是在构建响应式和动态应用时。本文将深入探讨...

    wpf中DataGrid数据双向绑定

    在MVVM中,View(视图)与ViewModel(视图模型)之间通过数据绑定建立连接,ViewModel又与Model(模型)交互,处理数据逻辑。 实现DataGrid的双向绑定,主要涉及以下步骤: 1. **创建数据模型**:首先,你需要定义...

    asp.net视频数据绑定

    在ASP.NET中,数据绑定是将数据源与用户界面元素(如控件)连接起来的关键技术,使得网页能够动态地显示和更新数据。在这个"ASP.NET视频数据绑定"的主题中,我们将深入探讨数据绑定的概念、类型以及如何在实践中应用...

    js实现数据双向绑定

    数据双向绑定是前端开发中的一个重要概念,它使得视图(View)和模型(Model)之间的数据保持同步,当模型改变时,视图自动更新,反之亦然。这一特性在现代Web应用框架如Angular、Vue和React中广泛使用,大大提升了...

    android数据绑定

    - 数据绑定常与Model-View-ViewModel(MVVM)架构一起使用,其中ViewModel负责处理业务逻辑和数据,View则只关注用户交互,两者通过数据绑定进行通信。 7. **减少样板代码** - 数据绑定减少了在Activity或...

    WPF mvvm数据绑定

    其中,数据绑定是MVVM中的核心机制,它允许视图(View)与视图模型(ViewModel)之间自动地同步数据,减少了代码的耦合度。 ### 1. 数据绑定基础 数据绑定在WPF中是指将控件的属性与数据源中的某个属性关联起来,...

    WPF之TreeView绑定数据获取节点数据

    在WPF中,数据绑定是基于MVVM(Model-View-ViewModel)设计模式的核心部分,它允许视图(View)与数据模型(Model)进行通信。绑定`TreeView`通常涉及以下几个步骤: 1. **定义数据结构**:`TreeView`的数据源通常...

    zk 数据绑定(grid进行嵌套显示数据)

    ZK的数据绑定机制基于MVC(Model-View-Controller)设计模式,通过数据绑定API实现了视图和模型之间的双向同步。这意味着当模型数据发生变化时,视图会自动更新,反之亦然。ZK的数据绑定主要涉及三个类:`Binding`, ...

Global site tag (gtag.js) - Google Analytics