Почему вызов QFileDialog :: getSaveFileName () сбрасывает установленный обработчик сообщений Qt на linux? - PullRequest
1 голос
/ 10 февраля 2020

Вызов диалога сбрасывает обработчик сообщений в debian, например linux

И да, здесь больше не требуется никаких подробностей, но я должен добавить этот текст в go через умного бота

#include <QApplication>
#include <QFileDialog>
#include <QDebug>

QtMessageHandler defaultHandler;

void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
    auto str = msg;
    str.append(" handled");
    defaultHandler(type, context, str);
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    qDebug() << "test0";
    defaultHandler = qInstallMessageHandler(messageHandler);
    qDebug() << "test1";
    QFileDialog::getSaveFileName();
    qDebug() << "test2";
}

вывод в windows

test0
test1 handled
test2 handled

вывод в Debian как linux

test0
test1 handled
warning: QFSFileEngine::open: No file name specified
debug: test2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...