QIcon
的 scaled
方法实际上是在 QPixmap
类中,因此如果您想要对图标进行缩放,您需要首先将 QIcon
转换为 QPixmap
。然后,您可以使用 scaled()
方法来调整其大小。
下面是修正后的代码示例:
#include <QApplication>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QIcon>
#include <QPixmap>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QTreeWidget tree;
tree.setColumnCount(1);
// 创建父项
QTreeWidgetItem *item1 = new QTreeWidgetItem(&tree);
item1->setText(0, "父节点");
// 创建子项
QTreeWidgetItem *childItem1 = new QTreeWidgetItem(item1); // 作为item1的子项
childItem1->setText(0, "节点1");
// 加载原始图标并设置缩放尺寸
QIcon originalIcon(":/png/feiji.png");
// 将原始图标转换为QPixmap,并进行缩放,例如32x32
QSize iconSize(32, 32);
QPixmap pixmap = originalIcon.pixmap(iconSize); // 使用pixmap()方法获取指定尺寸的图标
// 设置缩放后的图标给子项
childItem1->setIcon(0, QIcon(pixmap));
tree.show();
return a.exec();
}
修改点解释
- 加载和缩放:
- 使用
originalIcon.pixmap(iconSize)
方法直接生成一个指定尺寸的QPixmap
。
- 使用
- 重新设置图标:
- 用得到的
pixmap
创建新的QIcon
, 然后将其设置到childItem1
中。
- 用得到的
这样就可以解决您遇到的问题并正确设置带有指定尺寸的图标了。
内容由零声教学AI助手提供,问题来源于学员提问