• Model/View


    最近在做文字导航相关工作,发现一些问题:

    业务:1.和播放业务关联比较大同时涉及播控流程2.数据源涉及不同分类3.媒资结构涉及相关业务及适配现有接口可提供数据

    技术:支持大量数据动态加载

    单从技术角度来说一下:

    最初采用的QTreeWidget控件,现在考虑替换成QTreeView,主要原因有:1.数据量大存储信息随着需求越发复杂 2.增强扩展性,为二期需求满足数据库等形式加载数据性能 3.业务逻辑交互操作较复杂,为了实现数据和UI的分离。

    首先说下最初的方案:

    基础数据采用json存储基础业务分类信息,遍历json结构添加QTreeWidget节点,QtUserRole扩展Item存储对应json结构属性信息。一级分类节点由于要响应复杂的交互事件直接插入自定义widget,子节点为了保证加载速度使用QItemDelegate绘出item样式(否则也采用添加widget的方式会因为创建ui对象耗时出现卡顿的问题),响应交互事件加载异步调用OPENAPI接口获取分类数据,通过信号槽方式,通过在父节点下添加子节点动态加载新的节点数据。

    替换方案:

    梳理原有业务逻辑,采用Mode/View方式分离数据和UI,初始化加载数据及动态添加数据通过维护Mode实现,同时封装OPENAPI接口,独立所有负责展示和交互的View对象,View仅负责展示。

  • 相关阅读:
    LIBSVM
    tf-idf
    DIV+CSS例子
    网页背景设置
    获取JDBC中的ResultSet的记录的条数
    SQL 基本语句
    经典SQL语句大全
    JS(截取字符串,显示当前系统时间yyyy-MM-dd,从文本框得到的数值计算)
    JavaScript实现全排列
    Java发送邮件
  • 原文地址:https://www.cnblogs.com/zhuqn/p/5193116.html
Copyright © 2020-2023  润新知