Qt制作QQ好友列表
郁闷了好长时间,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好友列表相关推荐
- android制作好友列表,Qt制作QQ好友列表
郁闷了好长时间,QQ列表怎么做呢,前一篇文章说想重写QTreeView,还要写个库,有点说大话了.其实一开始我就被骗了.因为当我看QQ列表的第一印象是用List,第2印象是用TreeView,第三我就 ...
- 好友列表页面java_怎样制作QQ好友列表的界面?
我写了一个简单的,自己改改,要睡觉了. package qq; public class Friend { //昵称 private String displayName; //唯一标识 privat ...
- 基于Qt的类似QQ好友列表抽屉效果的实现
转载地址: http://blog.csdn.net/shuideyidi/article/details/30619167 前段时间在忙毕业设计,所以一直没有更新博客.今天答辩完以后,将对我的毕业设 ...
- C++ Qt5学习笔记 2020-12-10(qlabel对齐方式,dateEdit显示日历,设置滚动条及其一些属性,qss中使用参数,QToolBox的使用,及以此实现简易的QQ好友列表)
1.qlabel对齐方式: ui->label->setWordWrap(true); //自动换行ui->label->setAlignment(Qt::AlignTop); ...
- QQ好友列表的实现(QQ9.0版本样式) -- 使用QTreeView
文章结构 最终实现效果 基本功能 代码主要结构 FriendTree类主要工作解析 ItemDelegate类主要工作解析 工程源码路径/下载地址 最终实现效果 以上是实现的最终样式,自己电脑上安装的 ...
- iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
iOS开发UI篇-使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...
- iOS之仿QQ好友列表展开收缩效果的实现
使用UICollectionView实现 思路 很明显整体它是一个列表,它的分组是一个列表,它里面的好友列表也是一个列表,所以就可以使用组头来设置分组列表,使用cell设置好友列表: 当点击组头的时候 ...
- tableView练习 -- QQ好友列表
LWTViewController.h // // LWTViewController.h // tableView练习 -- QQ好友列表 // // Created by apple on 14- ...
- html仿qq最小化怎么实现,JS仿QQ好友列表展开、收缩功能(第一篇)
JS仿QQ好友列表展开.收缩功能(第一篇) 发布时间:2020-10-17 14:20:03 来源:脚本之家 阅读:96 作者:erdouzhang 效果图如下所示: html: 我的好友 张三 李四 ...
- Android开发学习之QQ好友列表的实现
今天想和大家分享的是QQ好友列表的实现,我们知道,在默认情况下,QQ好友列表是处于收缩状态的,此时,列表显示好友分组名称.当我们单击分组时,列表处于展开状态,列表显示该分组下的项目.当再次单击分组时, ...
最新文章
- 单链表中一个插入操作的分析
- linux android编译环境,Linux下Android开发安装环境配置
- MySql遇到字段中有空格
- Spring cloud——Hystrix 原理解析
- virtio、vhost和vhost-user比较
- 为什么root下不能使用passwd命令_基于centos7下安装部署openldap+phpldapadmin
- 【Oracle学习笔记-4】内连接和外连接的区别
- [BuildRelease Management]buildbot
- shell整理(34)===date 命令的小脚本
- 如何处理DDoS***
- JavaScript培训
- matlab更改安全密钥,Linux下设置安全密钥登录
- 周立功arm linux教程,极速搭建周立功IMX287A ARM Linux开发环境
- 51单片机智能小车寻循迹代码
- vue展示日历 考勤展示_Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示...
- ActiveMQ集群安装与配置
- 2021年最详细的Android屏幕适配方案汇总
- WGS84与GCJ02、BD09经纬度坐标转换介绍
- Android App Bundle 和Unity AAB BundleTools
- 【STL】STL空间配置器
热门文章
- 浏览器主页被篡改怎么办?一分钟帮你解决
- 管理中的“鲶鱼效应”
- Effective java 读书笔记
- Linux系统故障分析与排查
- MySQL创建数据库、数据表 | 零基础自学SQL课程系列Day3
- FFMPEG :resource temporarily unavailable
- 微服务实战之高可用性
- 人参鹿鞭片39.9/花花公子裤子29/除螨仪9.9/三合一数据线8.8/阿迪达斯沐浴露39.9/超多好物你等!...
- 软件推荐--Files2Folder
- (13.1.3.9)PMBOK之三:十大知识领域之采购管理