QML debugging is enabled.Only use this in a safe environment.
这个是说开启了QML调试功能,和qDebug不输出没有关系。你以root运行可以输出应该是因为普通用户和root用户的环境不一致导致。
不建议用这种方式,我们之后会去掉 QT_LOGGING_RULES=*.debug=false 的环境变量设置。 @tsic
QML debugging is enabled.Only use this in a safe environment.
这个是说开启了QML调试功能,和qDebug不输出没有关系。你以root运行可以输出应该是因为普通用户和root用户的环境不一致导致。
感谢指正。你的意思是,如果root用户的环境变量也是
QT_LOGGING_RULES=*.debug=false,它同样是无法输出调试信息的?
可是有一点我没想明白,00deepin-dde-env 这个文件中的环境变量是不是全局的?如果是,那我并未修改这个变量,通过Run as root user,也能正常输出。如果不是,那非root用户的环境变量QT_LOGGING_RULES在哪里体现呢?
不建议用这种方式,我们之后会去掉 QT_LOGGING_RULES=*.debug=false 的环境变量设置。 @tsic
如果去掉这个:QT_LOGGING_RULES=*.debug=false,会不会导致Qt的Application Output里输出Qt的详细运行日志?因为这个配置行里,还有qt.*.debug=false
的配置,有这个配置,才屏蔽了系统的Qt运行日志,*.debug=true;qt.*.debug=false
这两个配合使用,才能实现只输出用户qDebug的调试日志。
如果去掉这个:QT_LOGGING_RULES=*.debug=false,会不会导致Qt的Application Output里输出Qt的详细运行日志?因为这个配置行里,还有qt.*.debug=false
的配置,有这个配置,才屏蔽了系统的Qt运行日志,*.debug=true;qt.*.debug=false
这两个配合使用,才能实现只输出用户qDebug的调试日志。
不会,Qt库自己的日志默认就是不会输出 debug 级别的
感谢指正。你的意思是,如果root用户的环境变量也是
QT_LOGGING_RULES=*.debug=false,它同样是无法输出调试信息的?
可是有一点我没想明白,00deepin-dde-env 这个文件中的环境变量是不是全局的?如果是,那我并未修改这个变量,通过Run as root user,也能正常输出。如果不是,那非root用户的环境变量QT_LOGGING_RULES在哪里体现呢?
以root运行似乎的环境变量似乎是不完整的,所以可以看到日志输出。
Popular Ranking
ChangePopular Events
More
Deepin 下,Qt 开发者经常遇到的一个问题是,qDebug不能输出,给调试带来不便。网上的已有通过个性系统变量的可行的解决方案,可参考这里。这种方式是可行的。

但因为对系统环境变量的修改,操作略复杂,对新手来说也容易出错,因此本文写的是另外一种方法。
通过Application Outpupt看到有这样一行信息:
QML debugging is enabled. Only use this in a safe environment.
,这表示未输出调试信息,可能是跟用户环境权限有关。在Qt Creator中,打开左侧的Projects,依次找到Build&Run ->Run -> Run as root user
,选中以root用户运行。如下图:切换加Edit,首次按下Ctrl+R运行,会有提示要求输入root用户的密码,录入后,就可以看到qDebug的输出信息了。本项目的后面的运行、调试,均不会再要求密码验证了。

本文所涉及的环境是:Deepin,Qt 6.* ,Qt Creator 7。对其它Linux环境应该也有参考意义。