2011-05-30 40 views
1

如果我有多个非矩形自定义QWidget(例如圆形按钮),我可以重叠吗?Qt:是否允许非矩形QWidgets重叠?

似乎没有办法让Qt知道小部件的哪些部分是不透明的,所以鼠标事件被传递到正确的QWidget(它看起来像Qt假设每个小部件占用其边界矩形)。

我应该将这些小部件变成QGraphicsItem吗?

回答

3

如果你希望它们是非矩形的,你可以给QWidgets一个掩码。这应该可以工作,但创建遮罩区域并不总是很简单。 QGraphicsItem当然可以更轻松地处理非矩形形状。

+0

使用QWidget蒙版可能会严重影响性能,所以如果您'知道'程序化的小部件的形状(圆圈......),重新实现事件处理程序并将事件传递给父窗口小部件可能是个好主意你变形了。 – vrince 2011-05-30 13:02:39