ansi color code parser class from qt-creator's source code and modified and added new features (italic and underline) then aims easy to use with current QTextEdit and QPlainTextEdit without creating custom classes
#include "ui_mainwindow.h"
#include "ansiescapecodehandler.hpp"
#include <QMainWindow>
#include <QPlainTextEdit>
#include <QThread>
#include <spdlog/logger.h>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void log();
private:
Ui::MainWindow ui;
Utils::AnsiEscapeCodeHandler handler;
};
#include "mainwindow.h"
#include <spdlog/spdlog.h>
#include <spdlog/sinks/qt_sinks.h>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
// give the plainTextEdit's textCursor and verticalScrollBar to AnsiEscapeCodeHandler class
// appendAnsiText(const QString&) slot will parse and append styled plain text into plainTextEdit
handler = Utils::AnsiEscapeCodeHandler(ui.plainTextEdit->textCursor(), ui.plainTextEdit->verticalScrollBar());
mLogger = spdlog::qt_logger_color_mt("qt_logger", &handler, true, "appendAnsiText");
spdlog::set_pattern("%^[%Y-%m-%d %H:%M:%S.%e] [%n] [%l] %v%$");
...
}