Qt模型和视图-如何将数据从模型链接到视图?

Qt模型和视图-如何将数据从模型链接到视图?,qt,view,model,signals,slots,Qt,View,Model,Signals,Slots,我对模型和视图的概念非常陌生,我很难找到正确的方法来实现这一点。因此,在我的理解中,这个概念意味着,我有一个类处理所有视图GUI部件,另一个类处理数据处理 我制作的GUI有一些显示小部件LCDnumbers,它们只需要从另一个类获取数据并将其输出到LCD。 所以我在GUI类中创建了一个函数,可以在LCD中设置一个数字。我做了一个函数,可以改变数据类中数字的值。 现在我需要一些东西来连接它们,例如,当我更改数据类中的数字时,我希望它在GUI中更新。我发现了一些关于信号和插槽以及发出信号的东西,但是

我对模型和视图的概念非常陌生,我很难找到正确的方法来实现这一点。因此,在我的理解中,这个概念意味着,我有一个类处理所有视图GUI部件,另一个类处理数据处理

我制作的GUI有一些显示小部件LCDnumbers,它们只需要从另一个类获取数据并将其输出到LCD。 所以我在GUI类中创建了一个函数,可以在LCD中设置一个数字。我做了一个函数,可以改变数据类中数字的值。 现在我需要一些东西来连接它们,例如,当我更改数据类中的数字时,我希望它在GUI中更新。我发现了一些关于信号和插槽以及发出信号的东西,但是在保持模型和视图概念的同时,这是如何工作的呢

这可能是其他地方的答案,如果是的话,你能给我链接来源吗?我找不到任何办法来解决我的问题。 谢谢你的阅读,我希望有人能帮助我

GUI的头文件:

#include <QMainWindow>
#include <QtCore>
namespace Ui {
class MainBoardView;
}

class MainBoardView : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainBoardView(QWidget *parent = 0);
    ~MainBoardView();
    void ChangeNumber(int value);   
private:
    Ui::MainBoardView *ui;

};
#include "mainboardview.h"
#include "ui_mainboardview.h"

MainBoardView::MainBoardView(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainBoardView)
{
    ui->setupUi(this);

}

MainBoardView::~MainBoardView()
{
    delete ui;
}

void MainBoardView::ChangeNumber(int value)
{
    ui->lcdNumber->display(value);
}
数据类的代码:

标题:

class MainBoard
{
public:
    MainBoard();
    void changeMoney(int value);
private:
    int m_money;
}
CPP:

应用时,应至少使用一个模型类。此类模型类为多种类型的数据字符串列表、树、sql等提供统一接口

为了显示数据,可以使用视图类或通过连接到模型的小部件

在您的情况下,不使用模型/视图可观察。主板应为发射信号的QObject:

class MainBoard: public QObject
{
  Q_OBJECT
public:
    MainBoard();
    void changeMoney(int value); //emit value with emit moneyChanged(value) in the implementation.
signals:
    void moneyChanged(int)
private:
    int m_money;
}

当然他们有这样的文档:它还没有100%理解,但我会阅读您提供的文档,并测试我的发现。如果我还有其他问题,我会把它们贴在这里,谢谢你的帮助!
class MainBoard: public QObject
{
  Q_OBJECT
public:
    MainBoard();
    void changeMoney(int value); //emit value with emit moneyChanged(value) in the implementation.
signals:
    void moneyChanged(int)
private:
    int m_money;
}