我有这个密码
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);
}
}图标不会放大。我做错了什么?
发布于 2016-07-11 17:12:07
QPixmap::scaled成员函数是const -也就是说,它不改变对象本身。缩放对象由该方法返回,它不会更改原始像素映射。
试一试如下:
QPixmap bgPixmap(fileName);
QPixmap scaled = bgPixmap.scaled( QSize(48, 48), Qt::KeepAspectRatio, Qt::SmoothTransformation );
QIcon icon(scaled);
item->setIcon(icon);发布于 2016-07-11 16:41:18
QPixmap::scaled返回像素映射的缩放版本,而不是就地缩放它。试着..。
pxm = pxm.scaled(QSize(48, 48), Qt::KeepAspectRatio);发布于 2021-06-03 18:29:57
您可以直接缩放QIcon:
myBtn->setIcon(QIcon(R"(..\assets\icon.png)"));
myBtn->setIconSize(QSize(25,25));
myBtn->resize(QSize(25,25));https://stackoverflow.com/questions/38311821
复制相似问题