我有这段代码;
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);
}
}
图标不会向上扩展。我做错了什么?
答案 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));