这个警告在哪里被引发'QApplication:传递了无效的样式覆盖,忽略它.'?

Gab*_*iel 8 python qt compiler-warnings

我的代码抛出警告(不确定这实际上是否是警告)

QApplication: invalid style override passed, ignoring it.
Run Code Online (Sandbox Code Playgroud)

但没有别的.它没有告诉我代码的哪一部分正在提升它.

我怎么知道我的代码的哪一部分触发了这个警告?

cda*_*itz 8

出现此消息的原因是系统上的环境变量QT_STYLE_OVERRIDE设置为 Qt 安装不支持的值。你可以检查一下

    sh-prompt> set | grep QT
Run Code Online (Sandbox Code Playgroud)

/etc/profile要修复此警告,您可以更改或中的变量$HOME/.bashrc,或者 - 如果只有一个程序受到影响 - 使用以下命令启动该程序

    QT_STYLE_OVERRIDE="" program
Run Code Online (Sandbox Code Playgroud)

qputenv在程序代码中取消设置变量(正如Harvey建议的那样)将会产生副作用,即即使在支持样式首选项的系统上,应用程序也会忽略样式首选项。


dra*_*ock 1

我如何知道代码的哪一部分触发了此警告?

从调用 GUI 的代码部分开始。鉴于OP似乎是一位科学家,我将matplotlib对此进行大胆猜测。我可以用以下命令重现该消息

import matplotlib.pyplot as plt
plt.plot([1, 2])
Run Code Online (Sandbox Code Playgroud)

使用以下软件包版本(来自conda list):

matplotlib                2.2.2            py36h0e671d2_1    defaults
pyqt                      5.9.2            py36h751905a_0    defaults
qt                        5.9.4                h4e5bff0_0    defaults
Run Code Online (Sandbox Code Playgroud)