2012-09-08 86 views

回答

0

QLabel从QFrame继承。您可以使用它来创建阴影。

3

假设你有一个表单,你想从蒙上了一层阴影的标签。

您可以使用QGraphicsDropShadowEffect像这样:

QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect; 
effect->setBlurRadius(5); 
effect->setXOffset(5); 
effect->setYOffset(5); 
effect->setColor(Qt::black); 

label->setGraphicsEffect(effect); 

,效果将是:

enter image description here

这种效应的缺点是,如果你把它应用到一个小部件,它的所有孩子会继承它。如果您将效果应用于具有大量小部件的小部件,这可能会产生问题,因为这会减慢渲染时间。但对于你的例子来说,这是非常好的,并建议。

有关Qt中的效果的更多信息,请检查QGraphicsDropShadowEffect也从中衍生出来的QGraphicsEffect类。