gpt4 book ai didi

qt - 我应该使用哪个 qt 小部件来显示消息?

转载 作者:行者123 更新时间:2023-12-03 13:28:02 25 4
gpt4 key购买 nike

QStatusBar 每次只有一行,我无法跟踪历史记录或将历史记录保存在日志文件中。

所以我想在我的主窗口中有一个停靠小部件,它能够以多行方式和自动滚动方式显示我需要的消息,然后自动保存到日志文件中。

我的问题是如何在 Qt 中做到这一点?

最佳答案

如果您正在寻找类似于 QtCreator 的“应用程序输出” Pane 的内容,那么简单的 QPlainTextEdit可以完成这项工作。您可以调用QPlainTextEdit::setReadOnly(true)如果您不希望用户能够编辑其内容(即只有您的应用程序可以写入)。

如果您想要自动滚动并自动保存到日志文件,则需要对其进行子类化。这里有一些东西可以帮助您入门:

class MyLogWindow : public QPlainTextEdit
{
Q_OBJECT
/* snip */
public:
void appendMessage(const QString& text);

private:
QFile m_logFile;
};


void MyLogWindow::appendMessage(const QString& text)
{
this->appendPlainText(text); // Adds the message to the widget
this->verticalScrollBar()->setValue(this->verticalScrollBar()->maximum()); // Scrolls to the bottom
m_logFile.write(text); // Logs to file
}

我留给你处理样板文件(打开和关闭文件,处理换行符等)。

现在,简单地放一个 MyLogWindow 的实例在您的 QMainWindow 的码头上, 并调用 MyLogWindow::appendMessage()每次您需要记录某些内容以使其显示、滚动和自动保存时。

关于qt - 我应该使用哪个 qt 小部件来显示消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com