def make_qicon(hicon): width = 16 height = 16 if valid_handle(hicon): return QPixmap.fromWinHICON(hicon).scaled(width, height) else: ret = QPixmap(width, height) ret.fill(Qt.transparent) return ret
def icon(self, size): flags = SHGFI.SHGFI_USEFILEATTRIBUTES if size > 32: flags = flags | SHGFI.SHGFI_SYSICONINDEX h = GetImageList(SHGFI.SHIL_EXTRALARGE) info = GetFileInfo(self._extension,flags) hIcon = ImageList_GetIcon(h, info.iIcon, ILD_TRANSPARENT) else: flags = flags | SHGFI.SHGFI_ICON if size < 32: flags = flags | SHGFI.SHGFI_SMALLICON else: flags = flags | SHGFI.SHGFI_LARGEICON info = GetFileInfo(self._extension, flags) hIcon = info.hIcon px = QPixmap.fromWinHICON(hIcon) DestroyIcon(hIcon) return px