2011-01-25 4 views
2

О некоторых событиях краски, Qt выводит несколько предупреждений в консоли: «QPainter :: начать: Painter уже активно»Как отключить некоторые предупреждения консоли в Qt

Я хотел бы отключить это конкретное предупреждение, потому что он загромождает Выходное окно, и я не планирую его исправлять. Как я могу это сделать?

+1

Эти предупреждения говорят вам, что ваш код явно делает неправильные вещи. – ismail

+0

Попробуйте создать сборку. Также вызов begin() обычно не нужен вообще. –

+0

Спасибо, Фрэнк, я удалил только один звонок, который мне нужно было начать() в моем коде, и это остановило все предупреждения. Причина, по которой я не собирался это исправлять, состоит в том, что действительно казалось, что код делает что-то ненужное, но не вредное. Ну, теперь, когда предупреждение зафиксировано, это еще лучше. –

ответ

2

Единственный способ сделать это - удалить его из источников Qt и перекомпилировать их. Но было бы намного проще и надежнее всего лишь исправить причину.

PS На самом деле, как указано в другом ответе, можно установить обработчик msg и отфильтровать это конкретное сообщение, вызвав strcmp(), но это оба уродливое и не очень надежное - если сообщение изменено в любом будущей версии, он снова начнет появляться.

8

Вы можете подавить любое сообщение Qt, установив свои собственные обработчики сообщений с помощью qInstallMsgHandler. Конкретное сообщение, которое вы упомянули, является сообщением qWarning.

+0

Оба эти ответы отчасти верны и отчасти ошибочны. О. Вы можете сами справиться с предупреждениями, установив обработчик, но B. Вы должны просто исправить проблему, вызывающую предупреждение. – Scott

Смежные вопросы