【发布时间】:2017-10-20 04:27:48
【问题描述】:
我刚刚安装了 Python3 (3.5.2) 和 Pyqt5 (5.8.2),我正在按照本教程学习和制作 GUI:http://zetcode.com/gui/pyqt5/firstprograms/
我正在尝试运行第二个示例,但程序返回一个错误(这也发生在第一个示例中,但由于它没有图像,我没有注意到),如下所示:
QApplication: invalid style override passed, ignoring it.
No XVisualInfo for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SwapBehavior(SingleBuffer), swapInterval 1, profile QSurfaceFormat::OpenGLContextProfile(NoProfile))
Falling back to using screens root_visual.
这是什么意思?我错过了一些包裹吗?
我先用这个命令安装了pyqt:
sudo -H pip3 安装 PyQt5
但是 Python3 没有承认它的存在,所以我搜索了 apt ubuntu repos 并安装了:
sudo apt install python3-PyQt5
我也尝试通过完整路径 /foo/bar/image.png 来引用图像,什么都没有
有什么问题?
编辑#1
我使用的代码来自示例 2:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode PyQt5 tutorial
This example shows an icon
in the titlebar of the window.
author: Jan Bodnar
website: zetcode.com
last edited: January 2015
"""
import sys
import os
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon
base_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(base_dir)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Icon')
self.setWindowIcon(QIcon('image.png'))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在您发布后,我重新安装了所有软件包。错误略有不同,但结果是一样的:
python3 example_02.py
QApplication: invalid style override passed, ignoring it.
【问题讨论】:
-
第一件事。 Python 2.7 是安装在 ubuntu 上的默认版本,因此如果您已经完成了 Python 3+ 的侧面安装,请务必明确您正在获取哪个软件包。否则你会有问题。如果您将代码与错误消息一起发布,我们可以为您提供更多帮助。到目前为止,我可以根据您提供的信息说两件事。 1. 给出的错误听起来像是你在代码中做错了什么。 2. Linux 处理图标的方式与 windows 不同,它比程序中的一行代码更复杂。
-
只是发表评论以防有人知道如何帮助我或编辑没有触发响应?
-
我对 Atom 不熟悉。您永远不会提供图像的路径。除非图像与脚本位于同一目录(文件夹)中,否则您需要提供路径。即使您已将其添加为某种形式的资源文件,大多数 ide 通常也会将本地路径和/或 url 添加到您需要提供的文件中。但同样我对 Atom 一无所知,所以我不能肯定地说。我还想指出你没有错误。您所呈现的内容更类似于警告,但甚至不是。它告诉你风格是无效的。可能是走错路了……如果是错误,它就不会运行。