为了账号安全,请及时绑定邮箱和手机立即绑定

请问qt可以实现界面和逻辑代码分离吗?

请问qt可以实现界面和逻辑代码分离吗?

www说 2019-06-24 14:15:07
qt可以实现界面和逻辑代码分离吗
查看完整描述

4 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

想用python+qt的话那就不用说了,pyqt或者pyside都可以,当然了用pyqt的话要注意版权问题,实现界面逻辑分离的话可以用model/view结构来实现,这是qt自带的一种方式.opengl我没有做过,范例的话可以参考qt自带的示例,虽然是c++写的但是思路都是一样的

查看完整回答
反对 回复 2019-06-29
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
视图

  视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。

模型

  模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。
业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。

控制

  控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。

 


查看完整回答
反对 回复 2019-06-29
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

通过manager回调把网络请求的结果回调给controller,在manager里面处理其他业务逻辑,数据持久化之类的,也可以根据网络请求到的数据来做业务逻辑处理。这样controller就不用再去关心业务逻辑,只需要拿到数据刷界面就行了。

查看完整回答
反对 回复 2019-06-29
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

这个是通过三层结构来实现的。
第一层:controller,本层主要负责页面信息传递;
第二层:service,本层主要接收控制层参数,进行业务方面的处理,之后访问dao数据层。
第三层:dao,本层主要接收业务层内容,之后进行数据的存储和变更、删除操作。
这样就可以实现业务层和数据层的分离了。

查看完整回答
反对 回复 2019-06-29
  • 4 回答
  • 0 关注
  • 1030 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信