我的代码正在抛出警告(不确定这实际上是否是警告)
QApplication: invalid style override passed, ignoring it.
但没有别的。它没有告诉我代码的哪一部分正在提升它。
我怎么知道我的代码的哪一部分会触发此警告?
答案 0 :(得分:2)
此问题来自qt 5.9.2和pyqt 5.9.2。 Anaconda团队知道此问题,而他们忽略了它,因为它主要来自qt。
我在anaconda-navigator(Anaconda3-5.2.0-Linux-x86_64)上遇到此错误,这导致我的Python 3.6的Spyder(v3.2.8)IDE变得不可见。降级qt和pyqt解决了该问题。
要降级,请在控制台中输入:
conda install pyqt=5.6
注意:如果您的conda没有更新,则需要在运行上述命令之前更新conda。要更新conda,请运行:
conda update -n base conda
希望这也可以解决您的问题。
答案 1 :(得分:1)
我怎么知道我的代码的哪一部分会触发此警告?
从调用GUI的代码部分开始。鉴于OP似乎是一名科学家,我会猜测matplotlib
涉及到import matplotlib.pyplot as plt
plt.plot([1, 2])
。我可以用
conda list
使用以下软件包版本(来自matplotlib 2.2.2 py36h0e671d2_1 defaults
pyqt 5.9.2 py36h751905a_0 defaults
qt 5.9.4 h4e5bff0_0 defaults
):
var fireheading = document.getElementById("fireHeading");
var firebaseHeadingRef = firebase.database().ref().child("Users").child("Customers").child(uid).child("name");
firebaseHeadingRef.on('value', function(datasnapShot){
fireHeading.innerText = datasnapShot.val();
});
答案 2 :(得分:1)
此消息的原因是环境变量 QT_STYLE_OVERRIDE 在您的系统上设置为Qt安装不支持的值。您可以使用
进行检查 sh-prompt> set | grep QT
要解决此警告,您可以在/etc/profile
或$HOME/.bashrc
中更改变量,或者-如果仅影响一个程序,请使用-p启动该程序
QT_OVERRIDE_STYLE="" program
在程序代码中使用qputenv
来取消变量(如 Harvey 所建议的那样)会产生副作用,即即使在支持它的系统上,应用程序也会忽略样式首选项。>
答案 3 :(得分:0)
[EDIT]:我刚刚为自己的C ++代码找到了一个更好的解决方案。它仍然只是“解决方法”,但警告已消失。在main()
函数的最上方添加一行,如下所示:
int main(int argc, char *argv[])
{
qputenv("QT_STYLE_OVERRIDE",0);
...
这将取消设置引起警告的环境变量。
[旧答案]:
Error message:
QApplication: invalid style override passed, ignoring it.
To remove this error message:
In Qt Creator (ver 4.4.1)
Select "Projects" (wrench icon on left edge)
Under "Build & Run" (left pane)
Select "Run"
Under "Run Settings" (right pane)
Under "Run Environment"
Select "Details" (drop down list)
Scroll down to "QT_STYLE_OVERRIDE"
Click it to highlight it
Then click "Unset" button (right side)
Click "Details" to close the list
Now when you run the application you shouldn't see this error message.
答案 4 :(得分:0)
在Ubuntu 18.04上,我安装了anaconda。
$ anaconda-navigator
QApplication: invalid style override passed, ignoring it.
从anaconda-navigator运行spyder时:
/home/username/.anaconda/navigator/scripts/spyder.sh: line 3: 31873 Segmentation fault (core dumped) spyder >
/home/username/.anaconda/navigator/scripts/spyder-out-1.txt 2>
/home/username/.anaconda/navigator/scripts/spyder-err-1.txt
从命令行运行spyder时:
/home/username/.anaconda/navigator/scripts/spyder.sh: line 3: 31873 Segmentation fault (core dumped) spyder >
/home/username/.anaconda/navigator/scripts/spyder-out-1.txt 2>
/home/username/.anaconda/navigator/scripts/spyder-err-1.txt
这解决了我的问题:
$ conda install pyqt=5.6
非常感谢Narnia_Optimus