🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
UiChatMessageList.hpp
浏览该文件的文档.
1
12
13#pragma once
14
15#include "AstGlobal.h"
16#include <QWidget>
17
18class QScrollArea;
19class QVBoxLayout;
20class UiChatMessageItem;
21
22AST_NAMESPACE_BEGIN
23
24enum class EChatRole;
25
32class AST_UIAI_API UiChatMessageList : public QWidget
33{
34 Q_OBJECT
35
36public:
37 explicit UiChatMessageList(QWidget* parent = nullptr);
38 ~UiChatMessageList() override;
39
42 UiChatMessageItem* appendMessage(EChatRole role, const QString& content = QString());
43
46 UiChatMessageItem* lastMessage() const;
47
49 void appendWidget(QWidget* widget);
50
52 void clear();
53
55 void scrollToBottom();
56
58 void scrollToBottomIfEnabled();
59
61 int messageCount() const;
62
63private Q_SLOTS:
65 void onScrollBarValueChanged(int value);
66
67private:
68 void setupUi();
69
70 QScrollArea* scrollArea_ = nullptr;
71 QWidget* contentWidget_ = nullptr;
72 QVBoxLayout* contentLayout_ = nullptr;
73
74 bool autoScrollEnabled_ = true; // 用户是否开启了自动跟随(滚到底部=开启,滚离=关闭)
75};
76
79AST_NAMESPACE_END
单条聊天消息气泡部件
定义 UiChatMessageItem.hpp:34
聊天消息列表(可滚动区域)
定义 UiChatMessageList.hpp:33
EChatRole
消息角色
定义 ChatMessage.hpp:39