Qt图片不会显示在按钮中

时间:2018-10-24 19:02:58

标签: c++ qt qpushbutton

我正在创建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);

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

2 个答案:

答案 0 :(得分:0)

您使用.svg图像格式。您确定您的应用程序加载了.svg的图片格式插件吗?图像插件必须位于应用程序当前目录的“ imageformats”目录中。您可以在Qt目录.../Desktop/Qt/<version>/<mingw or msvc>/plugins/imageformats

中找到可用的插件

答案 1 :(得分:0)

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

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

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

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