🛰️航天仿真算法库 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 UiChatMessageList(const UiChatMessageList&) = delete;
40 UiChatMessageList& operator=(const UiChatMessageList&) = delete;
41
44 UiChatMessageItem* appendMessage(EChatRole role, const QString& content = QString());
45
48 UiChatMessageItem* lastMessage() const;
49
51 void appendWidget(QWidget* widget);
52
54 void clear();
55
57 void scrollToBottom();
58
60 void scrollToBottomIfEnabled();
61
63 int messageCount() const;
64
65private Q_SLOTS:
67 void onScrollBarValueChanged(int value);
68
69private:
70 void setupUi();
71
72 QScrollArea* scrollArea_ = nullptr;
73 QWidget* contentWidget_ = nullptr;
74 QVBoxLayout* contentLayout_ = nullptr;
75
76 bool autoScrollEnabled_ = true; // 用户是否开启了自动跟随(滚到底部=开启,滚离=关闭)
77};
78
81AST_NAMESPACE_END
单条聊天消息气泡部件
定义 UiChatMessageItem.hpp:34
聊天消息列表(可滚动区域)
定义 UiChatMessageList.hpp:33
EChatRole
消息角色
定义 ChatMessage.hpp:39