fix ctai_textedit

This commit is contained in:
JackLee 2025-02-26 22:36:40 +08:00
parent 396e19619b
commit 51df2da4fe
4 changed files with 125 additions and 77 deletions

Binary file not shown.

View File

@ -1,59 +1,106 @@
# ninja log v6 # ninja log v6
4545 15917 7622792483817737 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc 22 267 7622810172364790 ctai_autogen/timestamp da3870ebc94b983e
4539 15011 7622792483762632 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80 5089 25806 7622793903990218 CMakeFiles/ctai.dir/src/ctai_curl.cpp.obj b2496aab435c15c7
22 267 7622810172364790 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
3987 7703 7621872533500869 CMakeFiles/ctai.dir/src/ctai_session_table.cpp.obj d0b22ffae77b23cf
4577 16441 7622810217911257 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
22 267 7622810172364790 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
218 7564 7621848927853957 CMakeFiles/ctai.dir/src/sui.cpp.obj e1630d781a04e855
262 484 7622684576644682 qrc_res.cpp 9794859fafc6825
4522 16559 7622807033925372 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
4063 8329 7620828272105475 CMakeFiles/ctai.dir/src/ctai_tabbar.cpp.obj 41b68d110b3c0daf
4058 8712 7620828272053173 CMakeFiles/ctai.dir/src/ctai_cmd.cpp.obj 80d6964d23a3e9c5
4262 7998 7622710864828185 CMakeFiles/ctai.dir/src/ctai_parsestring.cpp.obj c7ba770f3578d195
4901 21734 7621792026923538 CMakeFiles/ctai.dir/src/sui_base_ex.cpp.obj 476c94d1f2c8cfea
4903 17025 7621792026943581 CMakeFiles/ctai.dir/src/sui_title.cpp.obj e026b4b712cf9da4
4534 15524 7622807034045607 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc
22 267 7622810172364790 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
4527 14732 7622807033980420 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80
4075 7860 7620828272226167 CMakeFiles/ctai.dir/src/sui_sys_style.cpp.obj 3bdd07348bd84970 4075 7860 7620828272226167 CMakeFiles/ctai.dir/src/sui_sys_style.cpp.obj 3bdd07348bd84970
262 484 7622684576644682 F:/SourceCode/ctai/build/qrc_res.cpp 9794859fafc6825 262 484 7622684576644682 F:/SourceCode/ctai/build/qrc_res.cpp 9794859fafc6825
22 4532 7622792482588033 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
3983 7575 7621872533460841 CMakeFiles/ctai.dir/src/ctai_session_docker.cpp.obj d8ac6cde8856dc5e 3983 7575 7621872533460841 CMakeFiles/ctai.dir/src/ctai_session_docker.cpp.obj d8ac6cde8856dc5e
4543 10651 7622792483807746 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240 267 4577 7622810174809919 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
4083 4223 7620828272305402 CMakeFiles/ctai.dir/sui.rc.obj e30df163c9cbe567 4083 4223 7620828272305402 CMakeFiles/ctai.dir/sui.rc.obj e30df163c9cbe567
4540 15191 7622792483777774 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0 4529 14957 7622807034000411 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0
487 3274 7622684576824662 CMakeFiles/ctai.dir/qrc_res.cpp.obj 9f74f1f5e59b5b50 487 3274 7622684576824662 CMakeFiles/ctai.dir/qrc_res.cpp.obj 9f74f1f5e59b5b50
3560 6938 7621113173344145 CMakeFiles/ctai.dir/src/ctai_switch_control.cpp.obj ddca150b42c8a71b 3560 6938 7621113173344145 CMakeFiles/ctai.dir/src/ctai_switch_control.cpp.obj ddca150b42c8a71b
4535 15833 7622792483719213 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115 4524 15455 7622807033940431 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115
4537 15426 7622792483744592 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1 4525 15164 7622807033960454 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1
4903 17025 7621792026943581 CMakeFiles/ctai.dir/src/sui_title.cpp.obj e026b4b712cf9da4 23 267 7622812829025703 ctai_autogen/timestamp da3870ebc94b983e
4901 21734 7621792026923538 CMakeFiles/ctai.dir/src/sui_base_ex.cpp.obj 476c94d1f2c8cfea 23 267 7622812829025703 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
4262 7998 7622710864828185 CMakeFiles/ctai.dir/src/ctai_parsestring.cpp.obj c7ba770f3578d195 23 267 7622812829025703 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
4058 8712 7620828272053173 CMakeFiles/ctai.dir/src/ctai_cmd.cpp.obj 80d6964d23a3e9c5 23 267 7622812829025703 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
4063 8329 7620828272105475 CMakeFiles/ctai.dir/src/ctai_tabbar.cpp.obj 41b68d110b3c0daf 268 4539 7622812831474208 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
4533 17016 7622792483699237 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740 4539 14278 7622812874189505 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
262 484 7622684576644682 qrc_res.cpp 9794859fafc6825 21 283 7622817420737849 ctai_autogen/timestamp da3870ebc94b983e
218 7564 7621848927853957 CMakeFiles/ctai.dir/src/sui.cpp.obj e1630d781a04e855 21 283 7622817420737849 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
22 4532 7622792482588033 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 21 283 7622817420737849 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
17016 26857 7622792608535519 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676 21 283 7622817420737849 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
3987 7703 7621872533500869 CMakeFiles/ctai.dir/src/ctai_session_table.cpp.obj d0b22ffae77b23cf 283 4377 7622817423363561 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
22 4532 7622792482588033 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 4377 15786 7622817464295393 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
4380 24531 7622788521759624 CMakeFiles/ctai.dir/src/ctai_curl.cpp.obj b2496aab435c15c7 24 287 7622823898092255 ctai_autogen/timestamp da3870ebc94b983e
22 4532 7622792482588033 ctai_autogen/timestamp da3870ebc94b983e 24 287 7622823898092255 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
19 263 7622792805669253 ctai_autogen/timestamp da3870ebc94b983e 24 287 7622823898092255 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
19 263 7622792805669253 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 24 287 7622823898092255 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
19 263 7622792805669253 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e 28 296 7622825807166365 ctai_autogen/timestamp da3870ebc94b983e
19 263 7622792805669253 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 28 296 7622825807166365 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
263 4714 7622792808103021 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240 28 296 7622825807166365 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
4714 16023 7622792852618072 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676 28 296 7622825807166365 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
19 5083 7622793902703499 ctai_autogen/timestamp da3870ebc94b983e 297 5098 7622825809844193 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
19 5083 7622793902703499 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 5098 16505 7622825857865462 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
19 5083 7622793902703499 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e 19 274 7622826052450279 ctai_autogen/timestamp da3870ebc94b983e
19 5083 7622793902703499 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 19 274 7622826052450279 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
5097 11530 7622793904065442 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240 19 274 7622826052450279 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
5093 16132 7622793904020196 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80 19 274 7622826052450279 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
5095 16144 7622793904045430 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0 20 304 7622826225999774 ctai_autogen/timestamp da3870ebc94b983e
5091 16527 7622793904010202 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1 20 304 7622826225999774 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
5087 16828 7622793903960268 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115 20 304 7622826225999774 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
5099 16962 7622793904085424 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc 20 304 7622826225999774 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
5084 17921 7622793903940220 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740 305 5276 7622826228843810 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
5089 25806 7622793903990218 CMakeFiles/ctai.dir/src/ctai_curl.cpp.obj b2496aab435c15c7 5276 15661 7622826278554966 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
25806 36248 7622794111164701 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676 21 278 7622826997536723 ctai_autogen/timestamp da3870ebc94b983e
25 268 7622794994002813 ctai_autogen/timestamp da3870ebc94b983e 21 278 7622826997536723 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
25 268 7622794994002813 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 21 278 7622826997536723 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
25 268 7622794994002813 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e 21 278 7622826997536723 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
25 268 7622794994002813 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 279 4680 7622827000110581 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
269 4864 7622794996431948 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240 4681 16624 7622827044129213 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
4864 16181 7622795042394233 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676 25 293 7622830220481004 ctai_autogen/timestamp da3870ebc94b983e
18 260 7622802232782276 ctai_autogen/timestamp da3870ebc94b983e 25 293 7622830220481004 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
18 260 7622802232782276 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 25 293 7622830220481004 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
18 260 7622802232782276 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e 25 293 7622830220481004 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
18 260 7622802232782276 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 294 5256 7622830223175488 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
261 4849 7622802235215488 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240 5256 15684 7622830272789669 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
4849 14942 7622802281095088 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676 22 274 7622831411416626 ctai_autogen/timestamp da3870ebc94b983e
22 274 7622831411416626 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
22 274 7622831411416626 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
22 274 7622831411416626 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
275 4977 7622831413956965 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
4977 16012 7622831460975460 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
22 298 7622832737945710 ctai_autogen/timestamp da3870ebc94b983e
22 298 7622832737945710 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
22 298 7622832737945710 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
22 298 7622832737945710 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
298 5793 7622832740714385 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
5793 16094 7622832795657136 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
29 294 7622834910118296 ctai_autogen/timestamp da3870ebc94b983e
29 294 7622834910118296 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
29 294 7622834910118296 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
29 294 7622834910118296 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
35 349 7622835110139526 ctai_autogen/timestamp da3870ebc94b983e
35 349 7622835110139526 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
35 349 7622835110139526 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
35 349 7622835110139526 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
349 5492 7622835113278187 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
5492 15838 7622835164701773 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
25 284 7622835295648458 ctai_autogen/timestamp da3870ebc94b983e
25 284 7622835295648458 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
25 284 7622835295648458 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
25 284 7622835295648458 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
285 5416 7622835298247482 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
5417 17168 7622835349564719 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
21 288 7622836427014826 ctai_autogen/timestamp da3870ebc94b983e
21 288 7622836427014826 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
21 288 7622836427014826 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
21 288 7622836427014826 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
289 4864 7622836429697305 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
4864 15900 7622836475443716 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676

Binary file not shown.

View File

@ -37,14 +37,13 @@ void ctai_textedit::appendMessage(const model_data& content)
item.content = QString::fromStdString(content.postback_model_data); item.content = QString::fromStdString(content.postback_model_data);
item.isCollapsed = false; item.isCollapsed = false;
messages[messageId] = item; messages[messageId]=item;
createMessageControls(messageId); messageDisplay(messageId);
messageDisplay(messageId);
} }
void ctai_textedit::messageDisplay(const QString& messageId) void ctai_textedit::messageDisplay(const QString& messageId)
{ {
if (!messages.contains(messageId)) return; //if (!messages.contains(messageId)) return;
const MessageItem& item = messages[messageId]; const MessageItem& item = messages[messageId];
QString html = QString( QString html = QString(
@ -67,8 +66,6 @@ void ctai_textedit::messageDisplay(const QString& messageId)
.arg(item.cache_hit_tokens) .arg(item.cache_hit_tokens)
.arg(item.cache_miss_tokens); .arg(item.cache_miss_tokens);
// 清空并重新显示
clear();
QTextCursor cursor = textCursor(); QTextCursor cursor = textCursor();
cursor.movePosition(QTextCursor::End); cursor.movePosition(QTextCursor::End);
cursor.insertHtml(html); cursor.insertHtml(html);
@ -193,49 +190,53 @@ void ctai_textedit::createMessageControls(const QString& messageId)
QWidget* controlsWidget = new QWidget(this); QWidget* controlsWidget = new QWidget(this);
QHBoxLayout* layout = new QHBoxLayout(controlsWidget); QHBoxLayout* layout = new QHBoxLayout(controlsWidget);
layout->setContentsMargins(5, 0, 5, 0); // 设置边距 layout->setContentsMargins(5, 0, 5, 0);
// 创建按钮并设置样式
QPushButton* deleteBtn = new QPushButton(tr("删除"), controlsWidget); QPushButton* deleteBtn = new QPushButton(tr("删除"), controlsWidget);
QPushButton* copyBtn = new QPushButton(tr("复制"), controlsWidget); QPushButton* copyBtn = new QPushButton(tr("复制"), controlsWidget);
QPushButton* saveBtn = new QPushButton(tr("另存"), controlsWidget); QPushButton* saveBtn = new QPushButton(tr("另存"), controlsWidget);
QPushButton* collapseBtn = new QPushButton(tr("折叠"), controlsWidget); QPushButton* collapseBtn = new QPushButton(tr("折叠"), controlsWidget);
// 设置按钮样式 QString btnStyle = "QPushButton { "
QString btnStyle = "QPushButton { padding: 2px 10px; margin: 0 5px; }"; "padding: 2px 10px; "
"margin: 0 5px; "
"border: 1px solid #ccc; "
"border-radius: 3px; "
"background: #f8f8f8; "
"} "
"QPushButton:hover { "
"background: #e8e8e8; "
"}";
deleteBtn->setStyleSheet(btnStyle); deleteBtn->setStyleSheet(btnStyle);
copyBtn->setStyleSheet(btnStyle); copyBtn->setStyleSheet(btnStyle);
saveBtn->setStyleSheet(btnStyle); saveBtn->setStyleSheet(btnStyle);
collapseBtn->setStyleSheet(btnStyle); collapseBtn->setStyleSheet(btnStyle);
// 连接信号槽
connect(deleteBtn, &QPushButton::clicked, [this, messageId](){ deleteMessage(messageId); }); connect(deleteBtn, &QPushButton::clicked, [this, messageId](){ deleteMessage(messageId); });
connect(copyBtn, &QPushButton::clicked, [this, messageId](){ copyMessage(messageId); }); connect(copyBtn, &QPushButton::clicked, [this, messageId](){ copyMessage(messageId); });
connect(saveBtn, &QPushButton::clicked, [this, messageId](){ saveMessage(messageId); }); connect(saveBtn, &QPushButton::clicked, [this, messageId](){ saveMessage(messageId); });
connect(collapseBtn, &QPushButton::clicked, [this, messageId](){ toggleCollapse(messageId); }); connect(collapseBtn, &QPushButton::clicked, [this, messageId](){ toggleCollapse(messageId); });
// 添加按钮到布局
layout->addStretch(1);
layout->addWidget(deleteBtn); layout->addWidget(deleteBtn);
layout->addWidget(copyBtn); layout->addWidget(copyBtn);
layout->addWidget(saveBtn); layout->addWidget(saveBtn);
layout->addWidget(collapseBtn); layout->addWidget(collapseBtn);
layout->addStretch(); // 添加弹性空间使按钮居中 layout->addStretch(1);
controlsWidget->setLayout(layout);
controlsWidget->setFixedHeight(40);
messageControls[messageId] = controlsWidget; messageControls[messageId] = controlsWidget;
// 设置控件位置 // 在文档末尾添加按钮控件
QTextCursor cursor = textCursor(); QTextCursor cursor = textCursor();
cursor.movePosition(QTextCursor::End); cursor.movePosition(QTextCursor::End);
QTextBlockFormat blockFormat; QRect cursorRect = this->cursorRect(cursor);
blockFormat.setAlignment(Qt::AlignCenter); controlsWidget->move(cursorRect.bottomLeft());
cursor.mergeBlockFormat(blockFormat);
// 创建一个占位符 QTextEdit 来放置控件
QTextEdit* placeholder = new QTextEdit(this);
placeholder->setFrameStyle(QFrame::NoFrame);
placeholder->setFixedHeight(40); // 设置合适的高度
placeholder->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
// 将按钮控件添加到文档中
cursor.insertHtml("<div class='controls' id='controls_" + messageId + "'></div>");
controlsWidget->setParent(placeholder);
controlsWidget->show(); controlsWidget->show();
} }