如何判断QIcon是否缺少有效的像素图?

时间:2014-06-17 10:38:58

标签: qt qt5

如果我使用pixmap创建QIcon,如以下代码段所示:

from PyQt5 import QtGui
icon = QtGui.QIcon(':/images/view-refresh.png')

如何判断图标是否没有有效的像素图,例如因为找不到':/images/view-refresh.png'

1 个答案:

答案 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方法,但根据文档,即使像素图无效,它也可能是假的。