Qt 之根据扩展名获取文件图标、类型

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

C++根据扩展名获取文件图标、类型一节中我们分享了如何根据扩展名来获取对应的文件图标、类型,下面。我们在Qt中使用它。

示例

如下,我们根据扩展名来获取对应的文件图标、类型。

效果

这里写图片描述

源码

首先在pro中添加winextras模块:

QT += winextras

然后,在源码中包含:#include <QtWin>,之后,方可使用。

std::string strArray[13] = {"folder", ".exe", ".zip", ".har", ".hwl", ".accdb",
                                ".xlsx", ".pptx", ".docx", ".txt", ".h", ".cpp", ".pro"};
int nCount = sizeof(strArray) / sizeof(std::string);
for (int i = 0; i < nCount ; ++i)
{
    // 获取图标、类型
    QPixmap	pixmap;
    std::string type;
    int nPos = -1;
    nPos = strArray[i].find(".");
    if (nPos >= 0)
    {
        // Qt4:QPixmap::fromWinHICON(icon)
        pixmap = QtWin::fromHICON(fileIcon(strArray[i]));
        type = fileType(strArray[i]);
    }
    else
    {
        pixmap = QtWin::fromHICON(folderIcon());
        type = folderType();
    }

    QIcon icon;
    icon.addPixmap(pixmap);
    QString strType = QString::fromLocal8Bit(type.c_str());

    // 添加单元项
    QListWidgetItem *pItem = new QListWidgetItem(pListWidget);
    pItem->setIcon(icon);
    pItem->setText(strType);
    pListWidget->addItem(pItem);
}

在Qt4中,可以通过QPixmap::fromWinHICON(HICON)来转换,但是,到了Qt5以后此接口已经被遗弃了,所以这里使用QtWin::fromHICON(HICON)。

更多参考

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一去丶二三里

有收获,再打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值