QT获取指定文件的图标以及通过句柄获取图标

QT C++ 专栏收录该内容
99 篇文章 8 订阅
#include <QFileInfo>
#include <QFileIconProvider>

...
QFileInfo file_info("D:\\Program Files (x86)\\Tencent\\QQ\\Bin\\QQ.exe");
QFileIconProvider icon_provider;
QIcon icon = icon_provider.icon(file_info);
QPixmap pixmap = icon.pixmap(28,28);
pixmap.save("D:\\test\\testqq.png", "png");

通过HWND来获取icon图标

QT       += winextras
#include <QtWin>
/////////////////////////////////////小图标
        HICON smallIcon;
        if (!SendMessageTimeout(pWnd, WM_GETICON, 0, 0,SMTO_BLOCK | SMTO_ABORTIFHUNG, 1000, (PULONG_PTR) &smallIcon)
            || NULL == smallIcon)
        {
            smallIcon = (HICON)(LONG_PTR)GetClassLongPtr(pWnd, GCLP_HICONSM);
        }
        if(smallIcon)
        {
            QPixmap pix =  QtWin::fromHICON(smallIcon);
            pix.save("D:\\test\\" +winTitle+"_s.png", "png");
        }

/////////////////////////////////////大图标
        HICON largeIcon;
        if (!SendMessageTimeout(pWnd, WM_GETICON, 1, 0, SMTO_BLOCK | SMTO_ABORTIFHUNG, 1000, (PULONG_PTR) &largeIcon)
           || NULL == largeIcon)
        {
            largeIcon = (HICON)(LONG_PTR)GetClassLongPtr(pWnd, GCLP_HICON);
        }
        if(largeIcon)
        {
            QPixmap pix =  QtWin::fromHICON(largeIcon);
            pix.save("D:\\test\\" +winTitle+"_l.png", "png");
        }
  • 0
    点赞
  • 0
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值