Вывод информации в консоль - qjsengine



  • Вопрос по qjs api (qjsengine) бывший qtscript.

    Когда выводишь в консоль к примеру командой: "print("hello world!");
    Получается след. выхлоп:
    "js: hello world!"

    Вопрос как избавиться от приставки "js: " - сделать чистый вывод без этого информационного дополнения???? В qtscript такого не было....



  • Разве это должно напрягать? консоль на то и консоль, что дебажить.



  • Мне нужен чистый вывод в консоль, для облегчения обработки выхлопа сторонними программами. Такое поведение прописано в стандарте "POSIX".

    К примеру, если нужно получить результат операции "3+2", проще обработать выхлоп: "5", чем "js: 5"

    Не пишите "зачем", пишите лучше "как". Зачем это надо, каждый решит для себя сам.



  • Придумал след. костыль:

    qInstallMessageHandler(messageHandler);

    void messageHandler(const QtMsgType type, const QMessageLogContext &context, const QString &msg)
    {
    Q_UNUSED(context)

    switch(type){
    case QtDebugMsg:
        qDebug() << msg.toUtf8().constData();
        break;
    case QtWarningMsg:
        qWarning() << msg.toUtf8().constData();
        break;
    case QtCriticalMsg:
        qCritical() << msg.toUtf8().constData();
        break;
    case QtFatalMsg:
        qFatal(msg.toUtf8().constData());
        break;
    case QtInfoMsg:
        qInfo() << msg.toUtf8().constData();
        break;
    }
    

    }


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.