如果我使用pixmap创建QIcon,如以下代码段所示:
from PyQt5 import QtGui
icon = QtGui.QIcon(':/images/view-refresh.png')
如何判断图标是否没有有效的像素图,例如因为找不到':/images/view-refresh.png'
?
答案 0 :(得分:1)
我的解决方案是将QIcon构造函数包装在一个工厂函数中,该函数创建一个显式的QPixmap,探测它是否有效:
def create_icon(filename):
pixmap = QtGui.QPixmap(filename)
if pixmap.isNull():
raise ValueError('No icon with filename \'{}\' found'.format(filename))
return QtGui.QIcon(pixmap)
icon = create_icon(':/images/view-refresh.png')
请注意,还有一个QIcon.isNull方法,但根据文档,即使像素图无效,它也可能是假的。