update showMessage

This commit is contained in:
xyz
2025-05-26 20:00:33 +08:00
parent 4dcec01d67
commit beda1e32ad
4 changed files with 237 additions and 18 deletions

View File

@ -7,8 +7,12 @@
#include <QScrollBar>
#include <QPushButton>
#include <QLabel>
#include <QFontMetrics>
#include <QPainter>
#include <QPainterPath>
#include "model/data.h"
#include "debug.h"
//.h文件中不宜使用namespace xxx
using model::Message;
@ -22,6 +26,14 @@ class MessageShowArea : public QScrollArea
public:
MessageShowArea();
//头插
void addFrontMessage(bool isLeft, const Message& message);
//尾插
void addMessage(bool isLeft, const Message& message);
//清空
void clear();
private:
QWidget* container;
};
@ -38,8 +50,28 @@ public:
//通过工厂方法创建MessageItem实例
static MessageItem* makeMessageItem(bool isLeft, const Message& message);
//添加工厂函数
static QWidget* makeTextMessageItem(bool isLeft, const QString& message);
static QWidget* makeImageMessageItem();
static QWidget* makeFileMessageItem();
static QWidget* makeSpeechMessageItem();
private:
bool isLeft;
};
////////////////////////////////////////////
/// 创建类表示“文本消息”正文部分
////////////////////////////////////////////
class MessageContentLabel : public QWidget {
public:
MessageContentLabel(const QString& text, bool isLeft);
void paintEvent(QPaintEvent* event) override;
private:
QLabel* label;
bool isLeft;
};
#endif // MESSAGESHOWAREA_H