无法扩大QIcon

时间:2016-07-11 16:27:13

标签: qt

我有这段代码;

void FileBrowser::setItemIcon(QStandardItem *item)
{
    // check whether its a file or not
    QFileInfo fileInfo(item->text());

    if(fileInfo.suffix() == "cpp")
    {
        QPixmap pxm("icons/cpp.svg");
        pxm.scaled(QSize(48, 48), Qt::KeepAspectRatio);
        QIcon icon(pxm);
        item->setIcon(icon);
    }
}

图标不会向上扩展。我做错了什么?

3 个答案:

答案 0 :(得分:2)

QPixmap :: scaled成员函数是const - 即它不会改变对象本身。 通过该方法返回缩放对象,它不会更改原始像素图。

尝试类似:

QPixmap bgPixmap(fileName);
QPixmap scaled = bgPixmap.scaled( QSize(48, 48), Qt::KeepAspectRatio, Qt::SmoothTransformation );
QIcon icon(scaled);
item->setIcon(icon);

答案 1 :(得分:1)

QPixmap::scaled 返回像素图的缩放版本,而不是原位缩放。尝试...

pxm = pxm.scaled(QSize(48, 48), Qt::KeepAspectRatio);

答案 2 :(得分:0)

您可以直接缩放 QIcon:

myBtn->setIcon(QIcon(R"(..\assets\icon.png)"));
myBtn->setIconSize(QSize(25,25));
myBtn->resize(QSize(25,25));