web-dev-qa-db-fra.com

Comment activer et désactiver les messages qDebug ()

Je désactive les messages qDebug () en écrivant

CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT

dans le fichier .pro. Cela fonctionne bien. Je voudrais savoir s'il existe un moyen d'activer les messages qDebug () en utilisant le code source. Je voudrais l'envoyer comme argument à la candidature. Par conséquent, par défaut, les messages qDebug () seront désactivés, mais avec un argument indiquant d'activer les messages qDebug (), j'ai besoin que qDebug () soit activé. Est-il possible de faire cela?

Toute aide est appréciée

16
gfernandes

Vous pouvez ajouter votre propre fonction pour gérer les messages de débogage Qt avec qInstallMsgHandler

Cela vous permettra de contrôler s'il faut imprimer les messages.

9
Dan Milburn

Vous pouvez contrôler QDebug (et tous les messages) au moment de l'exécution via quelques options:

  1. QLoggingCategory Ce qui vous permet d'utiliser des variables d'environnement ou des fichiers de configuration. Par exemple, avec Qt 5.6, vous pouvez faire: QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true" active qDebug pour tout sauf le débogage USB. Si vous avez besoin d'une configuration plus compliquée, ou si vous utilisez Qt 5.5 ou une version antérieure, vous pouvez activer et désactiver les messages de débogage individuels via un fichier qtlogging.ini.
  2. QT_MESSAGE_PATTERN peut également être utilisé pour contrôler la sortie des messages ainsi que pour le faire formatage .
10
asj

L'ajout de ce code à mon fichier de projet qmake a activé les messages qDebug () pour les versions de version sur Windows/MSYS, même sans qInstallMsgHandler ():

CONFIG += console
CONFIG += warn_on
0
Michal Fapso