예제 #1
0
def pixmap_cache(name, path=None):
    """ Return the QPixmap corresponding to a filename. If the filename does not
        contain a path component, 'path' is used (or if 'path' is not specified,
        the local 'images' directory is used).
    """
    if name[:1] == '@':
        image = convert_image(name.replace(' ', '_').lower())
        if image is not None:
            return image.create_image()

    name_path, name = os.path.split(name)
    name = name.replace(' ', '_').lower()
    if name_path:
        filename = os.path.join(name_path, name)
    else:
        if path is None:
            filename = os.path.join(os.path.dirname(__file__), 'images', name)
        else:
            filename = os.path.join(path, name)
    filename = os.path.abspath(filename)

    if is_qt5:
        pm = QtGui.QPixmapCache.find(filename)
        if pm is None:
            pm = QtGui.QPixmap(filename)
            QtGui.QPixmapCache.insert(filename, pm)
    else:
        pm = QtGui.QPixmap()
        if not QtGui.QPixmapCache.find(filename, pm):
            pm.load(filename)
            QtGui.QPixmapCache.insert(filename, pm)
    return pm
예제 #2
0
def pixmap_cache(name, path=None):
    """ Convert an image file name to a cached QPixmap

    Returns the QPixmap corresponding to a filename. If the filename does not
    contain a path component, 'path' is used (or if 'path' is not specified,
    the local 'images' directory is used).
    """
    if name[:1] == "@":
        image = convert_image(name.replace(" ", "_").lower())
        if image is not None:
            return image.create_image()

    name_path, name = os.path.split(name)
    name = name.replace(" ", "_").lower()
    if name_path:
        filename = os.path.join(name_path, name)
    else:
        if path is None:
            filename = os.path.join(os.path.dirname(__file__), "images", name)
        else:
            filename = os.path.join(path, name)
    filename = os.path.abspath(filename)

    if is_qt5:
        pm = QtGui.QPixmapCache.find(filename)
        if pm is None:
            pm = QtGui.QPixmap(filename)
            QtGui.QPixmapCache.insert(filename, pm)
    else:
        pm = QtGui.QPixmap()
        if not QtGui.QPixmapCache.find(filename, pm):
            pm.load(filename)
            QtGui.QPixmapCache.insert(filename, pm)
    return pm
예제 #3
0
def convert_theme(value, level=3):
    """ Converts a specified value to a Theme if possible.
    """
    if not isinstance(value, six.string_types):
        return value

    if (value[:1] == '@') and (value.find(':') >= 2):
        try:
            from .image.image import ImageLibrary

            info = ImageLibrary.image_info(value)
        except:
            info = None

        if info is not None:
            return info.theme

    from .theme import Theme
    return Theme(image=convert_image(value, level + 1))