自定义形状菜单与Qt中的阴影

问题描述 投票:0回答:1

我想创建一个类似于这个的上下文菜单:enter image description here

我在网上阅读了QWidget::setMask()应该用于创建形状的建议。但是,它如何适应可变数量的物品呢?而且,相同的菜单项可能在不同的机器上占用更多或更少的屏幕空间。

另一个问题是如何在这个自定义形状周围创建阴影?据我所知,蒙版允许裁剪小部件,但不能使其半透明。

qt mask
1个回答
1
投票

我没有找到一个简单的方法来做到这一点!但这是有道理的!

我没有使用Qt掩码API,而是使用了一个启用了透明度的无框小部件!

为了绘制阴影,我使用了径向渐变!

您可以在打开之前更改菜单的大小,但是打开后无法调整大小(例如,使用鼠标调整大小)。

添加或删除小部件非常容易,只需尊重布局边距,不要在指向小部件的边界之外绘制。为了简化您的生活,我创建了一个继承的QPushButton类,其颜色可以使用样式表轻松自定义。

看结果:

Example

你可以浏览source

希望有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.