我正在创建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);
有人可以帮我弄清楚为什么我的图片没有显示并且按钮只是空白吗?
答案 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。
添加前缀->添加文件(您的图标)