一.效果

从效果图中可以看出,有以下特点:
1.悬浮滚动条
自定义半透明滚动条悬浮在Item之上,与原挤占Item宽度的滚动条效果相同
2.鼠标点击
双击Item,打开聊天对话框
单机视频通话图标,开启视频通话
3.鼠标hover
鼠标移动到头像、昵称、个性签名等区域时有ToolTip提示
4.支持多个分组
各个分组下有多个好友,其中分组为一级节点,分组下的好友为二级节点

二.原理

Model-View-Controller(MVC), 是从Smalltalk发展而来的一种设计模式,常被用于构建用户界面。在MVC中,模型负责获取需要显示的数据,并且存储这些数据的修改。每种数据类型都有它自己对应的模型,但是这些模型提供一个相同的API,用于隐藏内部实现。视图用于将模型数据显示给用户。对于数量很大的数据,或许只显示一小部分,这样就能很好的提高性能。控制器是模型和视图之间的媒介,将用户的动作解析成对数据的操作,比如查找数据或者修改数据,然后转发给模型执行,最后再将模型中需要被显示的数据直接转发给视图进行显示。MVC的核心思想是分层,不同的层应用不同的功能。
Qt 4 开始,引入了类似的model/view架构来处理数据和显示之间的关系。当MVC的V和C结合在一起,我们就得到了model/view 构。这种架构依然将数据和界面分离,但是框架更为简单。同样,这种架构也允许使用不同界面显示同一数据,也能够在不改变数据的情

Qt之使用QTreeView实现QQ好友列表相关推荐

  1. Qt学习——利用QToolBox实现QQ好友列表

    由于写聊天软件的需要,设计此类以方便后面直接调用 使用的类 QToolBox.QGroupBox.QVBoxLayout.QToolButton.QList 设计思路 对按钮显示信息进行设置,令每个按 ...

  2. QQ好友列表的实现(QQ9.0版本样式) -- 使用QTreeView

    文章结构 最终实现效果 基本功能 代码主要结构 FriendTree类主要工作解析 ItemDelegate类主要工作解析 工程源码路径/下载地址 最终实现效果 以上是实现的最终样式,自己电脑上安装的 ...

  3. 基于Qt的类似QQ好友列表抽屉效果的实现

    转载地址: http://blog.csdn.net/shuideyidi/article/details/30619167 前段时间在忙毕业设计,所以一直没有更新博客.今天答辩完以后,将对我的毕业设 ...

  4. C++ Qt5学习笔记 2020-12-10(qlabel对齐方式,dateEdit显示日历,设置滚动条及其一些属性,qss中使用参数,QToolBox的使用,及以此实现简易的QQ好友列表)

    1.qlabel对齐方式: ui->label->setWordWrap(true); //自动换行ui->label->setAlignment(Qt::AlignTop); ...

  5. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇-使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  6. iOS之仿QQ好友列表展开收缩效果的实现

    使用UICollectionView实现 思路 很明显整体它是一个列表,它的分组是一个列表,它里面的好友列表也是一个列表,所以就可以使用组头来设置分组列表,使用cell设置好友列表: 当点击组头的时候 ...

  7. tableView练习 -- QQ好友列表

    LWTViewController.h // // LWTViewController.h // tableView练习 -- QQ好友列表 // // Created by apple on 14- ...

  8. html仿qq最小化怎么实现,JS仿QQ好友列表展开、收缩功能(第一篇)

    JS仿QQ好友列表展开.收缩功能(第一篇) 发布时间:2020-10-17 14:20:03 来源:脚本之家 阅读:96 作者:erdouzhang 效果图如下所示: html: 我的好友 张三 李四 ...

  9. Android开发学习之QQ好友列表的实现

    今天想和大家分享的是QQ好友列表的实现,我们知道,在默认情况下,QQ好友列表是处于收缩状态的,此时,列表显示好友分组名称.当我们单击分组时,列表处于展开状态,列表显示该分组下的项目.当再次单击分组时, ...

最新文章

  1. TensorFlow2.0 系列开篇: Windows下GPU版本详细安装教程
  2. 7-18 银行业务队列简单模拟 (25 分)
  3. shell查找符号链接及其指向目标的方法
  4. WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展
  5. Python中的正则表达式找到请求体为form-data格式的请求参数
  6. 浏览器占满整个屏幕_浏览器无法最大化 为什么我的IE浏览器最大化时,会铺满整个电脑屏...
  7. shell 除法保留n位小数
  8. sqlite3 命令行操作
  9. 对讲机在哪插卡?插卡对讲机是什么意思呢?5000公里对讲机的哪点事
  10. 无法更新到Win8.1的原因与解决办法
  11. 十、软考·系统架构师——软件测试及维护
  12. 2017工业互联网峰会 | 天拓四方助力中国工业生产、制造业转型升级
  13. 决战Python之巅(一)
  14. 物联网概论(IoT)_Chp7 物联网数据与计算/Google大数据/云计算
  15. 众生谈Cookie色变,我们的隐私在“裸奔”?
  16. 通过网线和EasyFatAP软件切换AP工作模式(瘦版切换胖版)
  17. 【解决方案】EasyNVR视频边缘计算网关城市智慧交通解决方案
  18. SQL Server 2012 数据库备份还原
  19. 一文带你读懂无法索取ICPunks NFT的背后原因
  20. BERT模型fine-tuning

热门文章

  1. Stenffensen加速迭代法
  2. Java EE基础练习题
  3. 从表征到行动---意向性的自然主义进路(续八)
  4. iMazing2023官网中文版下载及许可证附使用教程
  5. linux 视频电话,多人音视频通话-Linux开发集成-SDK开发集成-音视频通话-网易云信开发文档...
  6. 苹果系统手机调用java线程出错_在多线程Java应用程序中调用已编译的m-file(.jar)时出错...
  7. 输入字符,如果是大写则转化为小写,如果是小写则转化为大写
  8. 高科技恢复展示模式-VR安全教育|广州华锐互动
  9. 自己动手提高ubuntu性能
  10. 课程笔记之《论文写作》