在 Qt 界面开发中,常常需要在按钮(QPushButton
)和标签(QLabel
)中显示图片,提升界面美观度和交互体验。本文整理了两种常见控件显示图片的实现方法。
1. 在按钮中显示图片
使用 QPushButton
的 setIcon()
方法可以给按钮设置图标,配合设置按钮大小和图标大小来控制显示效果。
示例代码:
QPushButton *resistanceBtn = new QPushButton(element);
resistanceBtn->setFixedSize(120, 50); // 设置按钮固定大小
resistanceBtn->setIconSize(QSize(100, 45)); // 设置图标大小
QPixmap resistance(":/new/image/resistance1.png"); // 加载资源图片
resistanceBtn->setIcon(resistance); // 设置图标到按钮
2. 在标签中显示图片
方法一:标签随比例缩放显示图片
为了让图片自动适应标签大小,可以使用 setScaledContents(true)
,并用 QPixmap::scaled()
保持图片宽高比,平滑缩放。
ui->label->setScaledContents(true); // 标签图片随控件大小缩放
QPixmap pixmap("./01.jpg"); // 加载图片
QPixmap s_img = pixmap.scaled(ui->label->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); // 等比例缩放
ui->label->setPixmap(s_img); // 设置图片到标签
方法二:单独显示图片的 QLabel
如果 QLabel 独立存在,其大小默认是图片大小。如果 QLabel 放入 QMainWindow
,大小默认是初始大小。
QLabel *label = new QLabel();
QImage image("/home/ws/Pictures/cat.png");
label->setPixmap(QPixmap::fromImage(image));
label->show();
小结
-
按钮显示图片主要使用
setIcon()
和setIconSize()
方法。 -
标签显示图片时,可以使用
setScaledContents(true)
配合QPixmap::scaled()
保持图片比例缩放。 -
独立的 QLabel 大小默认与图片一致,放入窗口中时大小可调整。
💡 如果你觉得有帮助,欢迎点赞 👍、收藏 ⭐、评论 💬 支持!