【发布时间】:2015-05-30 19:21:01
【问题描述】:
我对模型和视图的概念还很陌生,我很难找到正确的方法来做到这一点。因此,在我的理解中,这个概念意味着我有一个类处理所有视图 (GUI) 部分,而另一个类处理数据处理。
我制作的 GUI 有一些显示小部件 (LCDnumbers),它们只需从其他类获取数据并将其输出到 LCD。 所以我在 GUI 类中做了一个函数,可以在 LCD 中设置一个数字。我制作了一个可以更改数据类中数字值的函数。 现在我需要一些东西来连接它们,例如当我更改数据类中的数字时,我希望它在 GUI 中更新。我发现了一些关于 Signals 和 Slots(并发出信号)的东西,但它是如何工作的,同时又保持了 Model 和 View 的概念?
这可能是在其他地方回答,如果是这样,你能链接我的来源吗?我找不到任何东西来解决我的问题。 感谢阅读,我希望有人可以帮助我。
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;
};
GUI的CPP文件:
#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:
void MainBoard::ChangeMoney(int value)
{
m_money = value;
//emit a signal here with the value to the ChangeNumber function of the GUI?
//and how should I do this?
}
【问题讨论】:
-
当然他们有这样的文档:doc.qt.io/qt-5/modelview.html
标签: qt view model signals slots