我在网上看到QWidget::setMask()
应该用来创建形状的建议。但是,它如何适应可变数量的物品呢?而且,相同的菜单项可能在不同的机器上占用更多或更少的屏幕空间。
另一个问题是如何围绕此自定义形状创建阴影?据我所知,蒙版允许裁剪小部件,但不能使其半透明。
答案 0 :(得分:1)
我没有找到一个简单的方法来做到这一点!但这是有道理的!
我没有使用Qt掩码API,而是使用了一个启用了透明度的无框小部件!
为了绘制阴影,我使用了径向渐变!
您可以在打开之前更改菜单的大小,但是打开后无法调整大小(例如,使用鼠标调整大小)。
添加或删除小部件非常容易,只需尊重布局边距,不要在指向小部件的边界之外绘制。为了简化您的生活,我创建了一个继承的QPushButton
类,其颜色可以使用样式表轻松自定义。
查看结果:
您可以浏览source
希望有所帮助!