c++ - 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);
有人可以帮我弄清楚为什么我的图像没有显示并且按钮只是空的吗?
解决方案
在我的项目中使用 .svg 图像作为按钮图标没有问题,也许按钮大小丢失,请尝试:
ui->menuButton->setIcon(QIcon(":/svg/resources/menu.svg"));
ui->menuButton->setToolTip("optional tooltip");
ui->menuButton->setFixedSize(QSize(28,28));
假设您将图标正确存储在资源文件中。如果没有,请创建一个新的:右键单击顶部项目文件夹(在项目树中)-> 添加新的.. -> 在左侧选择 Qt,在右侧窗口中选择 Qt 资源文件 -> 出现一个新窗口。
添加前缀 -> 添加文件(您的图标)
推荐阅读
- java - 在不损失精度的情况下推断最小可能的数据类型
- python - Python/Pandas - 查询多索引列
- angular - Uncaught Reference Error in App yet it is working fine in Stackblitz
- mysql - 不同的 2 个不同的列,如何在每一行中打印总组合
- wordpress - Wordpress 在 Gatsby 网站的 GraphQL 查询中返回 HTML 符号代码
- sql - MSSQL 在 Sum 列上跳过分组
- sql - 将查询结果合并为单行
- microsoft-graph-api - Microsoft Outlook 日历图 API 增量不返回已删除的事件?
- sql-server - 如何在 laravel 中格式化 sql server 的日期时间?
- python - 检查输入时出现 Keras 错误