首页 > 解决方案 > Qt 图像不会显示在按钮中

问题描述

我正在创建一个 Qt 应用程序,并且我有一个想要用于按钮而不是文本的图像。不幸的是,显示的只是一个空按钮。

我尝试了两种不同的方法来让它显示两种方法的相同结果。

方法1的代码:

ui->setupUi(this);

QPixmap pix(":/svg/resources/menu.svg");
int w = ui->menuButton->width();
int h = ui->menuButton->height();
ui->menuButton->setMask(pix.scaled(w,h,Qt::KeepAspectRatio).mask());

我在这里找到了第二种方法的信息:Adding image to QPushButton on Qt

方法2的代码:

ui->setupUi(this);

QIcon icon(":/svg/resources/menu.svg");
ui->menuButton->setIcon(icon);

有人可以帮我弄清楚为什么我的图像没有显示并且按钮只是空的吗?

标签: c++qtqpushbutton

解决方案


在我的项目中使用 .svg 图像作为按钮图标没有问题,也许按钮大小丢失,请尝试:

ui->menuButton->setIcon(QIcon(":/svg/resources/menu.svg"));
ui->menuButton->setToolTip("optional tooltip");
ui->menuButton->setFixedSize(QSize(28,28));

假设您将图标正确存储在资源文件中。如果没有,请创建一个新的:右键单击顶部项目文件夹(在项目树中)-> 添加新的.. -> 在左侧选择 Qt,在右侧窗口中选择 Qt 资源文件 -> 出现一个新窗口。

添加前缀 -> 添加文件(您的图标)


推荐阅读