郁闷了好长时间,QQ列表怎么做呢,前一篇文章说想重写QTreeView,还要写个库,有点说大话了。其实一开始我就被骗了。因为当我看QQ列表的第一印象是用List,第2印象是用TreeView,第三我就悲剧了,想重新实现TreeView的函数。可能是可行的但是,不下一番功夫做不来,或者说是不可行的。TreeView 跟本做不了QQ列表!

最简单的方法是用QListView,或者 QListWidget,下面的简单代码是用QListWidget实现的。原来QQ列表很好做。

可能有疑问,QQ列表带収放的功能,QLisView没有啊,TreeView前面有个小箭头。QListView也没有。其实我们被骗了。小箭头也是ListView上的一个Item 只不过贴上图了而已。

因为只做示范,代码会有很多不规范的。但是大致思想是这样子的

QListWidgetItem*item1=newQListWidgetItem;

QListWidgetItem*item2=newQListWidgetItem;

item1->setIcon(QIcon(QPixmap("好不好.jpg")));

item2->setIcon(QIcon(QPixmap("1000.jpg")));

item->setSizeHint(QSize(20,20));//这个函数超重要,因为他实现的功能让我找了一天。不然的没法设置item大小。重写函数也没法做到(我找不到 ^.^)

widget->setIconSize(QSize(40,40));  //widget    QListWidget

widget->addItem(item);   // item 是全局的 以为要他在槽中响应,改变图标,左三角和又三角

widget->addItem(item1);

widget->addItem(item2);

connect(widget,SIGNAL(clicked(QModelIndex)),this,SLOT(switchClicked(QModelIndex)));//文档里有

voidMainWindow::switchClicked(QModelIndexindex)

{

if(flag)item->setIcon(QIcon(QPixmap("he.jpg")));        //小箭头

elseitem->setIcon(QIcon(QPixmap("xia.jpg")));

if(index.row()==0){   //找到哪个item按下

qDebug()<<"0row";

widget->setRowHidden(1,flag);   // 这句话是思想的核心。没有他做不来収放的假象。也是我为什么一开始判断错误的原因

widget->setRowHidden(2,flag);   //有时候好的想法真的超过学好几天要学的知识。

flag=!flag;qDebug()<<flag;}  //flag    bool

}

基本上完成了 代码不全 主要是用到了setRowHidden和setSizeHint,setIconSize 重要函数,图标大小要用,item大小要用,item隐藏显示要用。其实知道这3个函数 其他的不重要了。

程序简单,开始是我想复杂了,被骗了好几天呢。 hide show 就能Tree的效果~!

例外 选择 QListWidget还有个好处就是  setItemWidget的函数,可以添加控件,比如你的一个Item上不能只写一行字吧,是不是有点单调啊。 这是可以把label加进去,用前文中字符串换行的例子 即可实现一个item 两行字, 需要注意的是这个函数要放在addItem后面写。

如果想写好点的QQ列表建议用QListView 需要 重写QItemDelegate。这就要靠自己的设计了,QItemDelegate不错哦,你想加什么控件都能加上。不过MVC的结构的掌握好。

Qt制作QQ好友列表相关推荐

  1. android制作好友列表,Qt制作QQ好友列表

    郁闷了好长时间,QQ列表怎么做呢,前一篇文章说想重写QTreeView,还要写个库,有点说大话了.其实一开始我就被骗了.因为当我看QQ列表的第一印象是用List,第2印象是用TreeView,第三我就 ...

  2. 好友列表页面java_怎样制作QQ好友列表的界面?

    我写了一个简单的,自己改改,要睡觉了. package qq; public class Friend { //昵称 private String displayName; //唯一标识 privat ...

  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. QQ好友列表的实现(QQ9.0版本样式) -- 使用QTreeView

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 单链表中一个插入操作的分析
  2. linux android编译环境,Linux下Android开发安装环境配置
  3. MySql遇到字段中有空格
  4. Spring cloud——Hystrix 原理解析
  5. virtio、vhost和vhost-user比较
  6. 为什么root下不能使用passwd命令_基于centos7下安装部署openldap+phpldapadmin
  7. 【Oracle学习笔记-4】内连接和外连接的区别
  8. [BuildRelease Management]buildbot
  9. shell整理(34)===date 命令的小脚本
  10. 如何处理DDoS***
  11. JavaScript培训
  12. matlab更改安全密钥,Linux下设置安全密钥登录
  13. 周立功arm linux教程,极速搭建周立功IMX287A ARM Linux开发环境
  14. 51单片机智能小车寻循迹代码
  15. vue展示日历 考勤展示_Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示...
  16. ActiveMQ集群安装与配置
  17. 2021年最详细的Android屏幕适配方案汇总
  18. WGS84与GCJ02、BD09经纬度坐标转换介绍
  19. Android App Bundle 和Unity AAB BundleTools
  20. 【STL】STL空间配置器

热门文章

  1. 浏览器主页被篡改怎么办?一分钟帮你解决
  2. 管理中的“鲶鱼效应”
  3. Effective java 读书笔记
  4. Linux系统故障分析与排查
  5. MySQL创建数据库、数据表 | 零基础自学SQL课程系列Day3
  6. FFMPEG :resource temporarily unavailable
  7. 微服务实战之高可用性
  8. 人参鹿鞭片39.9/花花公子裤子29/除螨仪9.9/三合一数据线8.8/阿迪达斯沐浴露39.9/超多好物你等!...
  9. 软件推荐--Files2Folder
  10. (13.1.3.9)PMBOK之三:十大知识领域之采购管理