У меня есть это в моем коде:
QString input = in.readLine();
if (!s.computers_font.fromString(input)){
s.computers_font = backup.computers_font;
}
Я хочу, чтобы, если входная строка повреждена или пуста, она должна была использовать резервный шрифт (я предполагаю, что возвращаемое значение bool указывает, был ли вызов функции успешным). Я думаю, что эта часть работает нормально. Однако он также выводит на консоль следующее сообщение:
QFont::fromString: Invalid description '(empty)'
Как я могу подавить поведение журнала?
Это не поможет в случае, если он поврежден.
Код, который у вас ЕСТЬ, обрабатывает этот случай.
Код, который у меня есть, гарантирует, что у нас все еще есть настройка шрифта, даже если ввод поврежден. Мы пытаемся убедиться, что он не регистрирует сообщение, если входные данные повреждены.





Qt использует qDebug(), qWarning(), qCritical() и qFatal() для регистрации. Вы можете установить собственный обработчик сообщений, чтобы перехватывать эти сообщения и предотвращать их вывод на консоль.
#include <QCoreApplication>
#include <QDebug>
// Custom message handler
void myMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) {
// You can log the messages to a file or simply ignore them
// Uncomment the following line to ignore the messages
// return;
// Example of logging to a file
QFile outFile("log.txt");
outFile.open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream ts(&outFile);
ts << msg << endl;
}
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
// Install the custom message handler
qInstallMessageHandler(myMessageHandler);
// Your application code here
return app.exec();
}
Вам следует добавить некоторый тип синхронизации, поскольку myMessageHandler может вызываться из разных потоков.
Как насчет
if ( input.isEmpty() || ...?