c++ - 设置 Qt Widget 掩码

标签 c++ qt qt4

我希望在我的 QT 应用程序中有一个具有其图标图像形状的按钮。我正在尝试通过使用 alpha channel 从使用的图像 (.png) 获取蒙版来设置按钮蒙版。

以下是感兴趣的代码行:

QPushButton button();
QPixmap pixmap("image_path.png");
QIcon icon(pixmap);
button.setIcon(icon);
button.setMask(pixmap.createMaskFromColor(Qt::transparent,Qt::MaskInColor));

结果是按钮消失了!

通过一些测试,我确定掩码创建正确,错误在哪里?

最佳答案


如果你像这样使用带有 alpha 的 .png :
transparent png
您可以像这样将其形状设置为 mask :

QPushButton button;
button.resize(50,50);
button.show();

QPixmap mask("D:/shape.png");
button.setMask(mask.mask());

你会得到这样的结果:
result shape button

关于c++ - 设置 Qt Widget 掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11845872/

相关文章:

c++ - 如何在 .pri 文件的内容前加上路径?

Qt4 样式表和 Focus Rect

c++ - Qt 多语言应用程序

qt - 使用 Qt 编译项目后,将一些文件复制到构建目录

qt - 关闭 QMainWindow/QDockWidget 分隔符的不透明调整大小

c++ - 单连接服务器套接字

c++ - 用 Xcode 编写的 c++ 项目的 Makefile 有问题

.net - 在 VC++ 中编程以在 Windows 之外运行

c++ - 在现代 C++ 中为层次图定义访问者内联

c++ - 在qt中创建一个qstate