Ответ 1
Если вы ищете что-то похожее на панель "Вывод приложения" в QtCreator, тогда простой 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()
каждый раз, когда вам нужно зарегистрировать что-либо, чтобы оно отображалось, прокручивалось и сохранялось автоматически.