Qt 图像不会显示在按钮中
Qt Image won't show up in button
我正在创建一个 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);
谁能帮我弄清楚为什么我的图片没有显示,按钮只是空的?
您使用.svg 图片格式。您确定您的应用程序加载了 .svg 的图像格式插件吗?图像插件必须位于应用程序当前目录的目录 "imageformats" 中。您可以在 Qt 目录中找到可用的插件 .../Desktop/Qt/<version>/<mingw or msvc>/plugins/imageformats
在我的项目中使用.svg图片作为按钮图标是没问题的,可能是按钮尺寸不见了,试试:
ui->menuButton->setIcon(QIcon(":/svg/resources/menu.svg"));
ui->menuButton->setToolTip("optional tooltip");
ui->menuButton->setFixedSize(QSize(28,28));
假设您将图标正确存储在资源文件中。如果没有,请创建一个新的:
右键单击您的顶级项目文件夹(在项目树中)-> 添加新的..-> 选择左侧的 Qt 和右侧的 Qt 资源文件 window -> 一个新的 Window apears。
添加前缀 -> 添加文件(您的图标)
我正在创建一个 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);
谁能帮我弄清楚为什么我的图片没有显示,按钮只是空的?
您使用.svg 图片格式。您确定您的应用程序加载了 .svg 的图像格式插件吗?图像插件必须位于应用程序当前目录的目录 "imageformats" 中。您可以在 Qt 目录中找到可用的插件 .../Desktop/Qt/<version>/<mingw or msvc>/plugins/imageformats
在我的项目中使用.svg图片作为按钮图标是没问题的,可能是按钮尺寸不见了,试试:
ui->menuButton->setIcon(QIcon(":/svg/resources/menu.svg"));
ui->menuButton->setToolTip("optional tooltip");
ui->menuButton->setFixedSize(QSize(28,28));
假设您将图标正确存储在资源文件中。如果没有,请创建一个新的: 右键单击您的顶级项目文件夹(在项目树中)-> 添加新的..-> 选择左侧的 Qt 和右侧的 Qt 资源文件 window -> 一个新的 Window apears。
添加前缀 -> 添加文件(您的图标)