QT实现显示聊天信息的控件
- 准备写一个局域网的聊天小软件。UI部分首先考虑的就是显示聊天信息的界面。下面是测试界面。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210127154301466.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NlYW1hbmNzZG4=,size_16,color_FFFFFF,t_70#pic_center)
- 思路就是自定义聊天项的控件添加到QListWidget中,控件中包含两个QLabel分别显示头像和消息信息。根据不同的聊天角色调整两个QLabel的位置。下面是代码。
- ChatItem是控件的名字,头文件如下
#define CHATITEM_H
#include <QWidget>
#include <QLabel>
class ChatItem : public QWidget
{
Q_OBJECT
public:
enum ChatRole
{
host,
guest
};
ChatItem(QString msg, int headId, ChatRole role, QWidget *parent = 0);
~ChatItem();
private:
void hostSet();
void guestSet();
private:
QLabel* labelMsg;
QLabel* labelHead;
};
#endif
#include "chatitem.h"
#define WIDTH 600
#define HEAD_WIDTH 50
#define HEAD_HEIGHT 50
ChatItem::ChatItem(QString msg, int headId, ChatItem::ChatRole role, QWidget *parent):
QWidget<