Qt模型和视图-如何将数据从模型链接到视图?
我对模型和视图的概念非常陌生,我很难找到正确的方法来实现这一点。因此,在我的理解中,这个概念意味着,我有一个类处理所有视图GUI部件,另一个类处理数据处理 我制作的GUI有一些显示小部件LCDnumbers,它们只需要从另一个类获取数据并将其输出到LCD。 所以我在GUI类中创建了一个函数,可以在LCD中设置一个数字。我做了一个函数,可以改变数据类中数字的值。 现在我需要一些东西来连接它们,例如,当我更改数据类中的数字时,我希望它在GUI中更新。我发现了一些关于信号和插槽以及发出信号的东西,但是在保持模型和视图概念的同时,这是如何工作的呢 这可能是其他地方的答案,如果是的话,你能给我链接来源吗?我找不到任何办法来解决我的问题。 谢谢你的阅读,我希望有人能帮助我 GUI的头文件:Qt模型和视图-如何将数据从模型链接到视图?,qt,view,model,signals,slots,Qt,View,Model,Signals,Slots,我对模型和视图的概念非常陌生,我很难找到正确的方法来实现这一点。因此,在我的理解中,这个概念意味着,我有一个类处理所有视图GUI部件,另一个类处理数据处理 我制作的GUI有一些显示小部件LCDnumbers,它们只需要从另一个类获取数据并将其输出到LCD。 所以我在GUI类中创建了一个函数,可以在LCD中设置一个数字。我做了一个函数,可以改变数据类中数字的值。 现在我需要一些东西来连接它们,例如,当我更改数据类中的数字时,我希望它在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;
}