简介
今日实现界面效果
联系人列表
我们自定义一个ChatUserList类,用来管理聊天列表。其声明如下:
1 | class ContactUserList : public QListWidget |
具体实现
1 | ContactUserList::ContactUserList(QWidget *parent) |
构造函数中关闭了滚动条的显示,重写了事件过滤器,实现了根据鼠标区域判断是否显示滚动条的功能。
并且实现了点击其中某个item响应对应的功能。并根据不同的item类型跳转不同的页面。
联系人item
因为每一个item都是我们自己定义的,所以我们添加设计师界面类,界面布局如下所示
类的声明如下
1 | class ConUserItem : public ListItemBase |
具体实现
1 | ConUserItem::ConUserItem(QWidget *parent) : |
这样我们启动程序就能看到模拟的联系人列表被加载进来了。
申请列表
申请页面ui布局如下
我们新增ApplyFriendPage类,用来显示申请列表
1 | class ApplyFriendPage : public QWidget |
具体实现
1 | ApplyFriendPage::ApplyFriendPage(QWidget *parent) : |
因为每个item自定义,所以我们新增设计师界面类ApplyFriendItem
界面布局
类的声明如下:
1 | class ApplyFriendItem : public ListItemBase |
以下为具体实现
1 | ApplyFriendItem::ApplyFriendItem(QWidget *parent) : |
申请列表类ApplyFriendList的声明如下
1 | class ApplyFriendList: public QListWidget |
具体实现
1 | ApplyFriendList::ApplyFriendList(QWidget *parent) |
然后在ChatDialog的stackedWidget中将friend_apply_page升级为ApplyFriendPage.
这样我们启动程序就能看到联系人列表和申请列表了。
下一步还需要写QSS美化以下
1 | #con_user_list { |
源码连接
https://gitee.com/secondtonone1/llfcchat
视频连接
https://www.bilibili.com/video/BV1SS42197Yo/?vd_source=8be9e83424c2ed2c9b2a3ed1d01385e9