![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 71
恋恋风辰
编程是我的使命,秃头是我的勋章。博客地址: https://llfc.club/ 哔哩视频教程: https://space.bilibili.com/271469206
展开
-
C++全栈聊天项目(22) 气泡聊天对话框
NameLabel用来显示用户的名字,Bubble用来显示聊天信息,Spacer是个弹簧,保证将NameLabel,IconLabel,Bubble等挤压到右侧。绘制的过程很简单,先创建QPainter,然后设置NoPen,表示不绘制轮廓线,接下来用设置指定颜色的画刷绘制图形,我们先绘制矩形再绘制三角形。BubbleFrame基类构造函数创建一个布局,要根据是自己发送的消息还是别人发送的,做margin分布。接下来在发送处实现文本和图片消息的展示,点击发送按钮根据不同的类型创建不同的气泡消息。原创 2024-06-16 09:22:07 · 720 阅读 · 1 评论 -
C++全栈聊天项目(21) 滚动聊天布局设计
最外层的是一个chatview(黑色), chatview内部在添加一个MainLayout(蓝色),MainLayout内部添加一个scrollarea(红色),scrollarea内部包含一个widget(绿色),同时也包含一个HLayout(紫色)用来浮动显示滚动条。widget内部包含一个垂直布局Vlayout(黄色),黄色布局内部包含一个粉色的widget,widget占据拉伸比一万,保证充满整个布局。重写paintEvent支持子类绘制。本节先到这里,完成聊天布局基本的构造。原创 2024-06-08 11:18:23 · 598 阅读 · 0 评论 -
C++全栈聊天项目(20) 聊天列表动态加载
全栈聊天项目实战原创 2024-06-06 12:22:07 · 920 阅读 · 0 评论 -
化繁为简,写个简单好用的server
为什么要造轮子目前很著名的轮子有libevent,boost等高并发的网络库,可以说著名的网络库我都用过,用过才知道当要实现一些定制化的功能时并不方便,不但要了解底层源码,而且还要进行适当的改造,总有种黑盒开发的感觉,所以在15年我就开始自己封装一些epoll,select模型,当时基于多路复用用reactor模式封装了betternet,虽然稳定性不如成熟的网络库,但是可以根据需求灵活修改网络层和应用层,这是难能可贵的。市面上也有一些成型的即时通信server,使用过kbengine,origine等原创 2020-07-02 17:22:54 · 215 阅读 · 0 评论