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

时间:2017-12-20 13:21:44

标签: qt mask

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

查看结果:

Example

您可以浏览source

希望有所帮助!