我刚刚安装了 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 install PyQt5
但是 Python3 没有承认它的存在所以我搜索了 apt ubuntu 存储库并安装了:
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.
最佳答案
请注意,所有应用程序都没有图标,不仅仅是 PyQt 图标示例。这是因为默认情况下,某些环境会关闭标题栏中的图标。你必须启用它们。
例如在 Xfce 桌面环境中,我们可以使用 xfce4-settings-editor
工具。在设置/设置编辑器中选择 xfwm4
。
找到 show_app_icon
选项并勾选。来回更改主题以查看更改;它们不会立即可见。
在此之后,您将在 PyQt5 示例的标题栏中看到该图标。
至于警告;这是最近发生的事情,它必须做点什么 Qt 和 GTK 主题之间的不兼容。我还没发现 到目前为止消除警告的解决方案。
关于python - 不显示图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44080247/