当前位置: 首页 > news >正文

新手入门网站建设网络平台创建需要多少钱

新手入门网站建设,网络平台创建需要多少钱,广州网站建设解决方案,揭阳市住房和城乡建设局网站近些天用qt 作项目,遇到参数界面.偷闲写个mvp模式示例. mvp模式重要的有两点 1 低耦合: 界面与后端数据类,不直接引用,可方便替换. 2 形成界面驱动-界面更新的闭环.:通过函数指针类技术,让数据自动回流. MVP (Model-View-Presenter) 视图(View): 接…

近些天用qt 作项目,遇到参数界面.偷闲写个mvp模式示例.

mvp模式重要的有两点

1  低耦合: 界面与后端数据类,不直接引用,可方便替换.

2 形成界面驱动-界面更新的闭环.:通过函数指针类技术,让数据自动回流.

MVP (Model-View-Presenter)

视图(View):

  • 接收用户的交互请求并根據需求展示数据给用户
  • 响應的數据可以是一個Model或者多個Model的混合

主持人(Presenter):

  • View 和 Mode的連接器
  • 接收 View 的要求 并給对应的Model去處理

模型(Model):

  • 負責數据 (增加,删除,更改,查詢)
  • 相關的业务逻辑,而不是在Presenter(因為會使Presenter變得臃腫)

参考:

一文读懂MVC、MVP和MVVM架构

直接上代码,

QT5.9.0 ,C++11

view, 包括一个设置数据的接口与一个要求数据的信号(类似于函数指针);诉讼诉讼诉讼诉讼诉讼诉讼诉讼诉讼诉讼诉讼诉讼诉讼诉讼诉讼诉讼

//.h
class DialogView : public QDialog
{Q_OBJECTpublic:explicit DialogView(QWidget *parent = nullptr);~DialogView();void UpdateVidw(UerData data);signals:void UpdateView_Signal();private slots:void on_btnRefresh_clicked();private:Ui::DialogView *ui;
};//.cpp
void DialogView::UpdateVidw(UerData data)
{this->ui->comboBox->setCurrentIndex(data.SelIdx);this->ui->lineEdit->setText(data.txt);this->ui->spinBox->setValue(data.num);this->ui->timeEdit->setTime(data.utime);this->ui->dial->setValue(data.SelNum);
}void DialogView::on_btnRefresh_clicked()
{emit this->UpdateView_Signal();
}

流通使用的数据结构

struct UerData
{
public:int SelIdx;QString txt;int num;QTime utime;int SelNum;
};

Model. 提供数据源

//.h
class DataModel
{
public:UerData data;void UpdateData();
};//.cpp
void DataModel::UpdateData()
{// 模拟从外网,下位机设备等拿取数据.qsrand(QTime::currentTime().msec());data.SelIdx = qrand()%3;data.txt = data.SelIdx == 1 ? "NUm1" : "deg2";data.utime = QTime::currentTime();data.num = qrand() % 1000;data.SelNum = qrand() % 100;
}

Presenter, 提供连接View 和model的方法

//.h
class Presenter : public QObject
{Q_OBJECT
public:explicit Presenter(DataModel* model, DialogView* view,  QObject *parent = nullptr);public slots:void fetchData();private:DataModel* m_model;DialogView* m_view;
};// .cpp
Presenter::Presenter(DataModel *model, DialogView *view, QObject *parent): QObject{parent}
{this->m_model = model;this->m_view = view;// 通过fetchData函数 ,绑定view与 model ,类似给函数指针赋值;QObject::connect(view, SIGNAL(UpdateView_Signal()),this, SLOT(fetchData()));
}void Presenter::fetchData()
{this->m_model->UpdateData();this->m_view->UpdateVidw(m_model->data);
}

使用代码:

    DialogView *dlg = new DialogView();DataModel *model = new DataModel();Presenter *p = new Presenter(model, dlg);dlg->exec();

最后实现效果如下:

点击"更新"按钮数据自动更新.

 

http://www.yayakq.cn/news/806468/

相关文章:

  • 制作商城网站开发哈尔滨网站建设平台
  • 广东河源网站建设家教网站开发
  • 好的网站具备什么条件如何注册电商网店
  • 微商建立网站五年级信息做网站的软件
  • 网站建设业务员主动话术wordpress也没修改
  • 犀牛云做网站编辑上传谷歌seo怎么提高网站权重
  • 昆明网站建设_云南网站建设域名备案 没有网站
  • 网易 自助网站建设十条网站建设的seo策略
  • 网站开发运营成本wordpress注册增加性别选项
  • 绵阳网站建设怎么做加盟装修公司哪家不要加盟费
  • 外贸网站多语言邢台网站建设网络公司
  • 欧 美 做 爱 视频网站怎样做网站卖自己的产品教程
  • 开发网站的基本过程物流官方网站
  • 福州做网站改版哪里比较好软件开发工程师前景
  • 顺德定制网站建设济南建设网站企业
  • 做网站iiwok装修设计公司服务
  • 商城网站制作报价c 手机网模板网站
  • 杭州优化网站服装设计考研哪些大学
  • 提升网站收录51link友链
  • 普宁网站建设公司河北网络建站
  • 外贸网站建设哪个好企业商务网站优化
  • 音乐网站开发模板怎么做淘宝网站
  • 网站权重高+做别的关键词浙江省住建和城乡建设厅官方网站
  • 网站制作推广方案wordpress 列表排序
  • 南京市溧水区建设局网站购物网页设计总结
  • 用DW做的网站生成链接自己做的网站为什么不显示图片
  • 企业网站建设训手机做wifi中继上外国网站
  • 营销推广型网站网站建设成为
  • 装潢公司企业网站源码千岛湖建设集团网站
  • 贵州网站建设hsyunsoui设计软件下载