为什么 PyQt5 QPixmap 会让 python 崩溃?



当我尝试将此字符串列表转换为像素图时,它使python崩溃。 对此有什么建议吗?

openIcon = [
'16 13 5 1',
'. c #040404',
'# c #808304',
'a c None',
'b c #f3f704',
'c c #f3f7f3',
'aaaaaaaaa...aaaa',
'aaaaaaaa.aaa.a.a',
'aaaaaaaaaaaaa..a',
'a...aaaaaaaa...a',
'.bcb.......aaaaa',
'.cbcbcbcbc.aaaaa',
'.bcbcbcbcb.aaaaa',
'.cbcb...........',
'.bcb.#########.a',
'.cb.#########.aa',
'.b.#########.aaa',
'..#########.aaaa',
'...........aaaaa'
]
if __name__ == "__main__":
from PyQt5.QtGui import QPixmap
openIcon_p = QPixmap(openIcon)
openIcon_p.save("openIcon.png")

用:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20( [MSC v.1916 64 位 (AMD64(] on win32

PyQt5==5.13.0

从控制台运行代码以查看错误消息。 您需要QApplication才能QPixmap

from PyQt5 import QtWidgets, QtGui
import sys
openIcon = [
'16 13 5 1',
'. c #040404',
'# c #808304',
'a c None',
'b c #f3f704',
'c c #f3f7f3',
'aaaaaaaaa...aaaa',
'aaaaaaaa.aaa.a.a',
'aaaaaaaaaaaaa..a',
'a...aaaaaaaa...a',
'.bcb.......aaaaa',
'.cbcbcbcbc.aaaaa',
'.bcbcbcbcb.aaaaa',
'.cbcb...........',
'.bcb.#########.a',
'.cb.#########.aa',
'.b.#########.aaa',
'..#########.aaaa',
'...........aaaaa'
]
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv) 
openIcon_p = QtGui.QPixmap(openIcon)
openIcon_p.save("openIcon.png")

编辑:如果没有添加的行,代码会给出以下错误消息:

QPixmap::fromImageInPlace: QPixmap cannot be created without a QGuiApplication
QPixmap: Must construct a QGuiApplication before a QPixmap 

有关解释,请参阅 Qt-文档。 还有一个描述何时使用QtWidgets.QApplication以及何时QtGui.QGuiApplication正如 Eyllanesc 所评论的那样

最新更新